Problème de masque dans un preg_match

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de masque dans un preg_match

Re: Problème de masque dans un preg_match

par visualight » 30 sept. 2009, 12:34

merci ;)

Re: Problème de masque dans un preg_match

par Victor BRITO » 29 sept. 2009, 19:23

Il y a une source potentielle de conflit entre les délimiteurs de l'expression rationnelle, d'une part, et les /, d'autre part.

De deux choses l'une, soit tu échappes les /
if (preg_match ('/\bhttp:\/{2}www\.monsite\b/i', $url)) {}
soit tu utilises un autre délimiteur d'expression rationnelle (comme le # ou l'@)
if (preg_match ('#\bhttp:/{2}www\.monsite\b#i', $url)) {}
À noter que tu dois aussi échapper le point si tu le cherches en tant que tel et non en tant que masque.

Problème de masque dans un preg_match

par visualight » 29 sept. 2009, 19:08

Bonjour, je désirerai savoir comment il est possible de modifier le masque du preg_match pour que ce dernier puisse vérifier plus que les 4 premières lettre (http).
if (preg_match("/\bhttp\b/i", $url)) {}
Ce que j'aimerai :
if (preg_match("/\bhttp://www.monsite\b/i", $url)) {}
Le problème est que le preg_match me signale une erreur de masque et comme je n'y connais rien aux masques, je me tourne vers votre science.


Merci d'avance,
raph