Php eregi_更换至preg_更换

Php eregi_更换至preg_更换,php,regex,Php,Regex,我正在尝试用preg_replace()修复不推荐使用的函数eregi_replace() $text=eregi_replace(“((f|ht){1}tp://)[-a-zA-Z0-9@:%+.~#?&/=]+),”,“$text); $text=eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%+.~#?&/=]+),'\1',$text); 我怎样才能让这些函数与preg_replace()一起工作呢?我在这里简直不知所措。您只需更

我正在尝试用preg_replace()修复不推荐使用的函数eregi_replace()

$text=eregi_replace(“((f|ht){1}tp://)[-a-zA-Z0-9@:%+.~#?&/=]+),”,“$text);
$text=eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%+.~#?&/=]+),'\1',$text);

我怎样才能让这些函数与preg_replace()一起工作呢?我在这里简直不知所措。

您只需更改函数的名称并将表达式包装在分隔符中。对于不区分大小写的函数
eregi()
eregi_replace()
,您可以在最后一个分隔符后添加一个
I
修饰符:

ereg('...', foo) // preg_match('/.../', foo)
eregi('...', foo) // preg_match('/.../i', foo)
ereg_replace('...', foo) // preg_replace('/.../', foo)
eregi_replace('...', foo) // preg_replace('/.../i', foo)
我在这里使用了
/
分隔符,但您需要使用最有意义且不出现在表达式中的任何分隔符

绝大多数(如果不是全部的话)通用表达式都是直接结转的,不需要转换。我已经转换了几个大型项目,从未遇到过需要实际修改表达式的情况,但这并不是说没有什么区别。

请参阅和
ereg('...', foo) // preg_match('/.../', foo)
eregi('...', foo) // preg_match('/.../i', foo)
ereg_replace('...', foo) // preg_replace('/.../', foo)
eregi_replace('...', foo) // preg_replace('/.../i', foo)