0
我想每个模式>>“数字”转换(如:>> 4)用户线程自动的preg_replace不工作
<a href="#4">>>4</a>
所以我做了这个功能,但它不工作。
你能告诉我这个函数有什么问题吗?
function autolink($content) {
$pattern = "/>>[0-9]/i" ;
$replacement = "<a href=\"#\\0\">>>\\0</a>";
return preg_replace($pattern, $replacement, $content, -1);
该功能效果很好。此功能会自动将网址转换为可点击的超链接。我不知道为什么第一个功能不起作用。
function autolink2($contents) {
$pattern = "/(http|https|ftp|mms):\/\/[0-9a-z-]+(\.[_0-9a-z-]+)+(:[0-9]{2,4})?\/?"; // domain+port
$pattern .= "([\.~_0-9a-z-]+\/?)*"; // sub roots
$pattern .= "(\S+\.[_0-9a-z]+)?" ; // file & extension string
$pattern .= "(\?[_0-9a-z#%&=\-\+]+)*/i"; // parameters
$replacement = "<a href=\"\\0\">\\0</a>";
return preg_replace($pattern, $replacement, $contents, -1);}
这可能是一个长镜头,但将'> >'放在'$ replacement'而不是最后两个'>>'里怎么办?另外,您可能想要考虑数字超过一位的情况,即“>> 10”。你可以使用正则表达式''/ >> [0-9] +/i“'。 – 2012-03-19 01:20:50