-2

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

4

1 回答 1

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);
于 2013-03-04T13:46:25.767 回答