我迁移到新的PHP版本。现在我有很多eregi_replace语句抛出错误:
$text = eregi_replace("([ \r\n])http://([^ ,\r\n]*)","\\1[url]http://\\2[/url]", $text);
$text = eregi_replace("([ \r\n])https://([^ ,\r\n]*)","\\1[url]https://\\2[/url]", $text);
$text = eregi_replace("([ \r\n])ftp://([^ ,\r\n]*)","\\1[url]ftp://\\2[/url]", $text);
$text = eregi_replace("([ \r\n])www.([^ ,\r\n]*)","\\1[url]http://www.\\2[/url]", $text);
$text = eregi_replace("^http://([^ ,\r\n]*)","[url]http://\\1[/url]", $text);
$text = eregi_replace("^https://([^ ,\r\n]*)","[url]https://\\1[/url]", $text);
$text = eregi_replace("^ftp://([^ ,\r\n]*)","[url]ftp://\\1[/url]", $text);
$text = eregi_replace("^www.([^ ,\r\n]*)","[url]http://www.\\1[/url]", $text);
我知道我必须使用preg_replace。当另一个人写这个代码时,我不知道如何实现这一点。也许有人可以帮助我。
答案 0 :(得分:1)
这相当于您拥有的第一个eregi_replace
$text = preg_replace("#([ \r\n])http://([^ ,\r\n]*)#i","$1[url]http://$2[/url]", $text);
概括的意思是:
$text = preg_replace('#'.$yourCurrentRegexString.'#i',str_replace('\\','$',$yourCurrentReplacement), $text);