0

可能重复:
已弃用:函数 eregi_replace()

我有一个错误,内容如下:

已弃用:函数 ereg_replace() 在第 26 行的 /home/socia125/public_html/wi_class_files/autoMakeLinks.php 中已弃用

我的代码在这里。任何帮助表示赞赏。

<?php

    class autoActiveLink {

    function makeActiveLink($originalString){

        $newString = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a 

        href=\"\\0\" target=\"_blank\">\\0</a>", $originalString);
        return $newString;
    }

}
?>
4

3 回答 3

0

ereg自 PHP 5.3.0 起不推荐使用函数。改为使用preg

class autoActiveLink {
    function makeActiveLink($originalString) {

        $newString = preg_replace("|[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]|",
                                  "<a href=\"\\0\" target=\"_blank\">\\0</a>",
                                  $originalString
        );
        return $newString;
    }
}

请注意,在preg函数上,您的正则表达式需要一个分隔符。有关更多详细信息,请参阅手册

于 2012-06-11T16:06:56.617 回答
0

改为使用preg_replace

在大多数情况下,唯一真正的区别是您必须在正则表达式周围有分隔符。我通常(在开头和)结尾使用,但您可以使用任何两个匹配的符号。的优点()是,您不必为了避免与分隔符冲突而转义任何内容。

于 2012-06-11T16:07:06.953 回答
0

使用preg_replace

$newString = preg_replace("#[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]#","<a href=\"\\0\" target=\"_blank\">\\0</a>", $originalString);
于 2012-06-11T16:08:42.817 回答