2012-06-11 292 views
0

可能重复:
Deprecated: Function eregi_replace()eregi_replace弃用

我有一条错误:

推荐使用:功能ereg_replace()中已经过时的/ home/socia125 /第26行的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; 
    } 

} 
?> 
+0

@truth谢谢! –

回答

0

使用preg_replace

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

非常感谢它的工作! :) @bsdnoobz –

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功能,您需要为您的正则表达式分隔符。有关更多详细信息,请参阅manual

+0

是的,我很难理解在哪种形式下使用它们,我很欣赏你的回复 –

+0

@RockoJedi:在大多数情况下,只需用'p'替换ereg的'e'即可。 –

+0

您错过了该模式的分隔符。 – flowfree

0

改为使用preg_replace

大多数情况下,唯一真正的区别就是你必须在正则表达式附近有分隔符。我通常在开始时使用(,最后使用),但您可以使用任何两个匹配的符号。 ()的优点在于,您不必为了避免与分隔符冲突而逃脱任何事情。