转换eregi_replace

时间:2013-03-04 13:35:46

标签: preg-replace

我迁移到新的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。当另一个人写这个代码时,我不知道如何实现这一点。也许有人可以帮助我。

1 个答案:

答案 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);