2011-08-20 55 views
5

可能重複:
replace ereg_replace with preg_replace更改功能使用的preg_replace()而非ereg_replace

我有一個代碼庫,需要一個字符串,使鏈接活躍中的以下功能。我注意到ereg_replace()是折舊的。我將如何改變這個使用preg_replace?

function makeActiveLink($originalString){ 

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

回答

1
function makeActiveLink($originalString) { 
    $pattern '#[a-z]+://[^<>\s]+[[a-z0-9]/]#i'; 
    $newString = preg_replace($pattern, '<a href="\\0" target="_blank">\\0</a>', $originalString); 

    return $newString; 
} 
4

你可以把它幾乎完全一樣,但它是最好改變一些事情:

function makeActiveLink($originalString){ 
    $newString = preg_replace('#[a-z]+://[^<>\s]+[[a-z0-9]/]#i', '<a href="\0" target="_blank">\0</a>', $originalString); 

    return $newString; 
} 

請注意,我用#作爲分隔符,因爲你有內部斜槓你串。

+0

您可以使用'A-z'而不是'a-zA-Z',或者使用'a-z'和'i'修飾符來告訴正則表達式引擎忽略大小寫。 –

+0

@ Samir:謝謝,改變了。 – Ryan