"Unknown modifier 'g' in..." when using preg_match in PHP?

PhpRegexPreg MatchPreg Match-All

Php Problem Overview


This is the regex I'm trying to use:

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

I found it on this site, and it works great when I try it out there. But as soon as I place it in my code, I get this message:

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

Can anyone explain what's wrong, and why it's working on that website and not in my code?

Php Solutions


Solution 1 - Php

There is no modifier g for preg_match. Instead, you have to use the preg_match_all function.

So instead of:

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

use:

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionNikeView Question on Stackoverflow
Solution 1 - PhpcodaddictView Answer on Stackoverflow