Php 将函数更改为使用preg_replace()而不是ereg_replace

Php 将函数更改为使用preg_replace()而不是ereg_replace,php,regex,function,preg-replace,Php,Regex,Function,Preg Replace,可能重复: 我在一个代码库中得到了以下函数,它接受一个字符串并激活链接。我注意到ereg_replace()被贬值了。我如何将其更改为使用preg_替换 function makeActiveLink($originalString){ $newString = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\

可能重复:

我在一个代码库中得到了以下函数,它接受一个字符串并激活链接。我注意到ereg_replace()被贬值了。我如何将其更改为使用preg_替换

 function makeActiveLink($originalString){

        $newString = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a href=\"\\0\" target=\"_blank\">\\0</a>", $originalString);
        return $newString;
    }
函数makeActiveLink($originalString){
$newString=ereg_replace(“[[:alpha:]+://[^[:space:]+[:alnum://]”,“”,$originalString);
返回$newString;
}
函数makeActiveLink($originalString){
$pattern'#[a-z]+://[^\s]+[[a-z0-9]/]#i';
$newString=preg_replace($pattern,,$originalString);
返回$newString;
}

您可以保持它几乎完全相同,但最好更改一些内容:

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

    return $newString;
}
函数makeActiveLink($originalString){
$newString=preg#u replace(“#[a-z]+://[^\s]+[[a-z0-9]/]#i',”$originalString);
返回$newString;
}

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

您可以使用
a-z
而不是
a-zA-z
,或者使用
a-z
I
修饰符告诉正则表达式引擎忽略大小写。@Samir:谢谢,已更改。
function makeActiveLink($originalString){
    $newString = preg_replace('#[a-z]+://[^<>\s]+[[a-z0-9]/]#i', '<a href="\0" target="_blank">\0</a>', $originalString);

    return $newString;
}