我正在尝试用preg_replace()来修复不推荐使用的函数eregi_replace()。
$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '<a target="_blank" class="clickable" href="\1">\1</a>', $text);
$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1<a target="_blank" class="clickable" href="http://\2">\2</a>', $text);我怎样才能让它们与preg_replace()一起工作?我在这里太头疼了。
发布于 2012-07-19 20:41:41
您只需更改函数名并将表达式封装在分隔符中即可。对于不区分大小写的函数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)我在这里使用了/分隔符,但您需要使用最有意义的分隔符,并且不会出现在表达式本身中。
绝大多数(如果不是所有的)常见表达式将是直接的结转,不需要转换。我已经转换了几个大型项目,从来没有遇到过必须实际修改表达式的情况,但这并不是说没有什么不同。
https://stackoverflow.com/questions/11559623
复制相似问题