I'm getting the following message for some php I have to use but did not write:
Deprecated: Function ereg() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/html2fpdf.php on line 466
This is line 466:
if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
I tried simply replacing with preg_match, but it couldn't recognize the = modifier in the regular expression.. I'm not too good with regular expression yet and solving this requires that I learn the regexp ereg needs AND the regexp preg_match needs (which, if I am not mistaken, is different)... Could you guys help me out with this one?
Thanks
POSIX extended regular expressions (POSIX ERE, used by ereg
) and Perl-combatible regular expressions (PCRE, used by preg_match
) are very similar. Except from some special POSIX expressions, PCRE is a superset of POSIX ERE.
That means you just need to put your POSIX ERE regular expressions into delimiters (here /
) and escape any occurrence of that character inside the regular expression and you have a valid PCRE regular expression:
/^([^=]*)=["']?([^"']*)["']?$/
So:
preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/', $v, $a3)
Try:
if(preg_match('~^([^=]*)=["\']?([^"\']*)["\']?$~',$v,$a3))
The regex in preg_match needs to be enclosed between a pair of delimiters, which is not the case with the deprecated ereg() function.
the preg_
family expects the regex to be delimited. Instead of:
'^([^=]*)=["\']?([^"\']*)["\']?$'
try:
'/^([^=]*)=["\']?([^"\']*)["\']?$/'
来源:https://stackoverflow.com/questions/2217850/how-to-replace-ereg