Questa è l'espressione regolare che sto cercando di utilizzare:"Modificatore sconosciuto 'g' in ..." quando si utilizza preg_match in PHP?
/^(\w|\.|-)[email protected](\w|-)+?\.\w{2,4}($|\.\w{2,4})$/gim
ho trovato su this site, e funziona benissimo quando provo là fuori. Ma non appena ho posto nel mio codice, ottengo questo messaggio:
Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22
Qualcuno può spiegare che cosa c'è che non va, e perché sta lavorando su questo sito e non nel mio codice?
potremmo dargli una migliore aiuto se sapevamo esattamente quello che stavi cercando di fare con la regex. E tu * hai bisogno * di un aiuto migliore - o la regex lo fa, comunque. Di tutte le email regex mal scritte che sono disponibili su quel sito, potresti aver scelto la peggiore. :/ –
FYI, il tuo regexp convaliderà OK questo tipo di mail: "-.-.-.--. @ - some--domain--.com" e questo tipo di mail VALID NON convalida: "info @ subdomain.domain.com". Ultimo ma non meno importante \ w è MOLTO PERICOLOSO perché PHP preg usa le espressioni regolari compatibili Perl e NON POSIX come Javascript. Se PHP viene eseguito su un server che non è localizzato negli Stati Uniti/Regno Unito \ w abbinerà anche lettere accentate in modo da corrispondere a "àèìòù@dominio.com" ha una posta valida. Leggi qui per maggiori dettagli: http://it.php.net/manual/en/function.preg-replace.php#92443 –