我这里有一个小脚本用HTML代码替换BB代码。一切正常,但URL。
$bbextended = array(
"/\[URL=(.*?)\](.*?)\[\/URL\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>"
);
foreach($bbextended as $match=>$replacement){
$bbtext = preg_replace($match, $replacement, $bbtext);
}
输入
[URL="http://somewebsite.come/something"]Some Website Title[/URL]
输出
<a href=""http://somewebsite.come/something"" title=""http://somewebsite.come/something"">Some Website Title</a>
有双引号,显然不是那么好。
我试过
$bbextended = array(
"/\[URL=\"(.*?)\"\](.*?)\[\/URL\]/i" => "<a href=\"$1\" title=\"$1\">$2</a>"
);
在代码中,但它没有工作。我还试图在HTML代码中省略$1
周围的转义符号和引号,但它既不起作用。
有什么想法吗?
答案 0 :(得分:1)
您应该使用真正的解析器,例如jBB http://jbbcode.com/
答案 1 :(得分:0)
当我
设置查找字符串= '/\[URL="(.*?)"\](.*?)\[\/URL\]/i'
和
设置替换字符串= '<a href="$1" title="$1">$2</a>'
我使用简单的preg_replace
得到了这个<a href="http://somewebsite.come/something" title="http://somewebsite.come/something">Some Website Title</a>