我这里有一个小脚本,用HTML代码替换BB代码。一切正常,但网址除外。
$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
周围的转义标志和引号,但它也不起作用。
有什么想法吗?
你应该为此使用一个真正的解析器,比如jBB http://jbbcode.com/
当我
设置查找字符串 = '/'[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>