2012-06-11 190 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

大多數情況下,唯一真正的區別就是你必須在正則表達式附近有分隔符。我通常在開始時使用(,最後使用),但您可以使用任何兩個匹配的符號。 ()的優點在於,您不必爲了避免與分隔符衝突而逃脫任何事情。