我收到一些我必须使用但未编写的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/