我收到一些我必须使用但未编写的php的以下消息:

Deprecated: Function ereg() is deprecated in /opt/lampp/htdocs/webEchange/SiteWeb_V5/inc/html2fpdf.php on line 466

这是第466行:
if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))

我尝试简单地用preg_match替换,但是它无法识别正则表达式中的=修饰符。.我对正则表达式还不太满意,要解决此问题,我需要学习regexp ereg需求和regexp preg_match需求(其中,如果我没记错的话,那就不一样了)...你们能帮我解决这个问题吗?

谢谢

最佳答案

POSIX扩展正则表达式(POSIX ERE,由ereg使用)和与Perl兼容的正则表达式(PCRE,由preg_match使用)非常相似。除了some special POSIX expressions之外,PCRE是POSIX ERE的超集。

这意味着您只需要将POSIX ERE正则表达式放入delimiters(此处为/)中,并在正则表达式中转义该字符的任何出现,即可获得有效的PCRE正则表达式:

/^([^=]*)=["']?([^"']*)["']?$/

所以:
preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/', $v, $a3)

关于php - 如何更换ereg?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2217850/

10-10 13:54
查看更多