web-dev-qa-db-fra.com

"Modificateur inconnu 'g' dans ..." lors de l'utilisation de preg_match en PHP?

Voici l'expression régulière que j'essaie d'utiliser:

/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim

Je l'ai trouvé sur ce site , et cela fonctionne très bien quand je l'essaie là-bas. Mais dès que je le place dans mon code, je reçois ce message:

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22

Quelqu'un peut-il expliquer ce qui ne va pas et pourquoi cela fonctionne sur ce site Web et non dans mon code?

72
Nike

Il n'y a pas de modificateur g pour preg_match . Au lieu de cela, vous devez utiliser le preg_match_all fonction.

Donc au lieu de:

preg_match("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim", ....)

utilisation:

preg_match_all("/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/im", ....)
142
codaddict