2013-03-04 37 views
-2

我迁移到一个新的PHP版本。现在我有很多eregi_replace陈述throwning错误:转换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

这将是第一个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);