il mio blog personale: foto, video…


Sto caricando i dati ...
Failed to load data!

273 PHP e Regular Expression insieme

inserito da ligio il 7 Agosto 2008 alle 13:52
nella categoria informatica, sezione

Le espressioni regolari sono uno strumento potentissimo di ricerca e gestione delle stringhe, in tutti i linguaggi di programmazione.
PHP mette a disposizione un particolare modificatore che somma le potenzialità delle RegExp con le possibilità offerte da PHP stesso…

Ad esempio… come fare a sostituire una parte di una stringa con il corrispondente minuscolo?
In pratica, se avessi una stringa “ciAo / ciaO / CIAO” e volessi sostituire SOLO la parola centrale per ottenere “ciAo / ciao / CIAO” ecco cosa potrei scrivere:

$stringa = “ciAo / ciaO / CIAO”;
$stringa = preg_replace(”#/([^/]+)/?#e“, “‘/’.strtolower(’\\1′).’/'”, $stringa);

Da notare infatti il modificatore e nel pattern della regex.
Dal manuale (qui) si legge infatti quanto segue:

e (PREG_REPLACE_EVAL)
If this modifier is set, preg_replace() does normal substitution of backreferences in the replacement string, evaluates it as PHP code, and uses the result for replacing the search string. Single quotes, double quotes, backslashes and NULL chars will be escaped by backslashes in substituted backreferences.

Only preg_replace() uses this modifier; it is ignored by other PCRE functions.