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:

POSIX PCRE
ereg_replace() preg_replace()
ereg() preg_match()
eregi_replace() preg_replace()
eregi() preg_match()
split() preg_split()
spliti() preg_split()
sql_regcase() nessuna corrisp.
 
Per eseguire la migrazione ereg():
#
$this->file_name = ereg('\.([^\.]*$)', $this->file_name, $extension);
#

Diventa:

#
$this->file_name = preg_match('/\.([^\.]*$)/', $this->file_name, $extension);
#
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()
#
$this->file_name_body = ereg_replace('[^A-Za-z0-9_]', '', $this->file_name_body);
#
Diventa:
#
$this->file_name_body = preg_replace('/[^A-Za-z0-9_]/', '', $this->file_name_body);
#
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()
#
$this->file_name = eregi('\.([^\.]*$)', $this->file_name, $extension);
#
Diventa:
#
$this->file_name = preg_match('/\.([^\.]*$)/i', $this->file_name, $extension);
#
Un'altra funzione deprecata è split(). Anche in questo caso avvolgeremo il modello con dei delimitatori
Per eseguire la migrazione split()
#
list($anno, $mese, $giorno, $ora, $min, $sec) = split( '[: -]', $post_timestamp );
#
Diventa:
#
list($anno, $mese, $giorno, $ora, $min, $sec) = preg_split('/[: -]/', $post_timestamp);
#
Per concludere aggiungo tutte le corrispondenze: 

POSIX Perl ASCII Descrizione
[:alnum:] [A-Za-z0-9] caratteri alfanumerici
[:word:] \w [A-Za-z0-9_] caratteri alfanumerici incluso l’underscore “_” (=word)
\W [^\w] carattere non-word
[:alpha:] [A-Za-z] carattere alfabetico
[:blank:] [ \t] spazio e tab
[:cntrl:] [\x00-\x1F\x7F] caratteri di controllo
[:digit:] \d [0-9] cifre
\D [^\d] non-cifre
[:graph:] [\x21-\x7E] caratteri visibili
[:lower:] [a-z] caratteri minuscoli
[:print:] [\x20-\x7E] caratteri visibili e spazi
[:punct:] [-!"#$%&'()*+,./:;<=>?@[\\\]^_`{|}~] caratteri di punteggiatura
[:space:] \s [ \t\r\n\v\f] caratteri di spaziatura del testo
\S [^\s] caratteri diversi da quelli di spaziatura del testo
[:upper:] [A-Z] lettere maiuscole
[:xdigit:] [A-Fa-f0-9] cifre esadecimali
Similari
Guida allo Zend Framework
284% Zend
Zend Framework è un framework open source per PHP. Zend Framework separa la logica e le azioni usando il pattern MVC (Model View Controller). Cosa è lo Zend Framework? Framework per la costruzione di siti web più veloci e …
Python per tutti
252% Python
[nextpage title="Copertina"] Python para todos è un libro sulla programmazione in Python. Questo è un tutoriale su Python adatto a tutti i livelli e si può scaricare in pdf gratuitamente in spagnolo. Il tutoriale di Python…
Estendere Google Analytics con jQuery
103% Plugins
Da un bel po' di tempo Google Analytics ha aperto la strada per la raccolta gratuita di statistiche del traffico del proprio sito web. Sono sicuro che molti di voi abbiano installato il codice di Google sui vostri siti e a…
Fondamentali di jQuery
97% JQuery
[nextpage title="Benvenuti"] jQuery stà diventando rapidamente uno strumento che ogni sviluppatore web di interfacce dovrebbe conoscere. Lo scopo di questo libro è di fornire una panoramica della biblioteca, in modo che qu…
Frammenti utili in PHP
47% Php
Se i frammenti di tipo PHP abbondano su Internet, allora perché scriverne un altro? Beh, i frammenti PHP trovati al giro sono generalmente zoppi. Frammenti che generano una stringa casuale o un ritorno di $_SERVER["REMOTE_…