Se avete fatto l’aggiornamento a PHP 5.3, ci sono alte probabilità che ci saranno alcuni avvisi o messaggi di funzioni deprecate, in alcuni casi ferma totalmente lo script.
Un esempio è la famiglia di funzioni ereg, che sono stati prese per buone per tanto tempo, anche se erano più lente e ci si sentiva meno familiare all’alternativa compatibile con famiglia preg di Perl.
Fix ereg
⤽
Con il rilascio della versione 5.3 di PHP le funzioni per le espressioni regolari POSIX sono state dichiarate deprecate. Passerà del tempo prima gli hosting utilizzeranno definitivamente tale versione, ma è bene conoscerle.
PCRE (Perl-Compatible Regular Expressions) si presenta come standard per le espressioni regolari in alternativa all’utilizzo delle storiche POSIX, utile spesso in ambito di sviluppo WEB per sostituire URL, mostrare porzioni di testo ecc.
Ecco la corrispondenza di tutte le vecchie funzioni PHP deprecate e le sostitutive:
Si noti che ho avvolto il modello (\.([^\.]*$)) con l'intorno / /, che sono i delimitatori RegExp. Se nella stringa ci sono parecchie slash / (ad esempio un URL), è possibile utilizzare, come alternativa, il delimitatore #.
Per eseguire la migrazione ereg_replace()
Ancora una volta, ho solo aggiunto i delimitatori al modello.
Se si utilizzano le funzioni di eregi (che sono il case-insensitive della versione di ereg), noterete che non ci sono funzioni equivalenti pregi. Questo perché questa funzionalità è gestita dai modificatori RegExp.
Fondamentalmente, per rendere ii modello di caratteri corrispondente ad un case-insensitive si dovrà aggiungere la 'i' dopo il delimitatore finale:
Per eseguire la migrazione eregi()
Ancora nessun commento