How to fix ereg and ereg_replace is deprecated errors in PHP 5.3

 
If you upgraded to PHP 5.3 Version, chances are high you’re going to run into a few warnings or deprecated function error messages.
 
ereg is deprecated
 
An example is the ereg family of functions, which are gone for good, as they were slower and felt less familiar than the alternative Perl-compatible preg family.


 
To migrate ereg() to preg_match()
 
Before
 
ereg('\.([^\.]*$)', $this->file_src_name, $extension);
 
After
 
preg_match('/\.([^\.]*$)/', $this->file_src_name, $extension);
 
Notice that we should wrapped the pattern (\.([^\.]*$)) around / /, which are RegExp delimiters. If you find yourself escaping / too much (for an URL for example), you might want to use the # delimiter instead.


 
To migrate ereg_replace() to preg_replace()
 
Before
 
$this->file_dst_name_body = ereg_replace('[^A-Za-z0-9_]', '', $this->file_dst_name_body);
 
After
 
$this->file_dst_name_body = preg_replace('/[^A-Za-z0-9_]/', '', $this->file_dst_name_body);
 
Again just added delimiters to the pattern.
 
If you are using eregi functions (which are the case-insensitive version of ereg), you’ll notice there’re no equivalent pregi functions. This is because this functionality is handled by RegExp modifiers.
 
Basically, to make the pattern match characters in a case-insensitive way, append i after the delimiter:


 
To migrate eregi() to preg_match()
 
Before
 
eregi('\.([^\.]*$)', $this->file_src_name, $extension);
 
After
 
preg_match('/\.([^\.]*$)/i', $this->file_src_name, $extension);


 

You can leave a response, or trackback from your own site.

Leave a Reply