更改函数以使用preg_replace()而不是ereg_replace

时间:2011-08-20 00:09:49

标签: php regex function preg-replace

  

可能重复:
  replace ereg_replace with preg_replace

我在代码库中获得了以下函数,它接受一个String并使链接处于活动状态。我注意到ereg_replace()是Depreciated。我如何将其更改为使用preg_replace?

 function makeActiveLink($originalString){

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

2 个答案:

答案 0 :(得分:4)

你可以保持几乎完全相同,但最好改变一些事情:

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

    return $newString;
}

请注意,我使用#作为分隔符,因为你的字符串中有斜杠。

答案 1 :(得分: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;
}