2010-08-26 14 views
58

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?

+1

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. :/ –

+2

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 –

risposta

Problemi correlati