如何将这些类型的 UBB 代码转换回 HTML? 我的粗体、斜体和下划线功能是:
function convertFromUBB($articleBody){
$articleBody = preg_replace( "#\[b\](.+?)\[/b\]#is", "<b>\\1</b>", $articleBody );
$articleBody = preg_replace( "#\[u\](.+?)\[/u\]#is", "<u>\\1</u>", $articleBody );
$articleBody = preg_replace( "#\[i\](.+?)\[/i\]#is", "<i>\\1</i>", $articleBody );
return $articleBody;
}
用于 URL 替换的示例 UBB 代码有两种格式:
[url]www (dot) domain (dot) com[/url] which would translate to <a href=" http: //www(dot) domain (dot)com">domain(dot) com</a>
and
[url=" http: //www(dot) domain(dot) com"]www. domain .com[/url] which would also translate to <a href=" http: //www. domain. com">www .domain. com</a>
抱歉,我不知道如何编写示例 URL。
将 [URL] UBB 标记转换回 HTML 我发现很难编写适当的
preg_replace()
并且无法找到 google 结果。 提前谢谢
使用两个正则表达式,一个用于
[url]www.XXX[/url]
,另一个用于 [url="XXX"]YYY[/url]
。第一个可以在 http://
标签中创建 URL 时添加 <a>
前缀。第二个简单地使用给定的 XXX
。
$articleBody = preg_replace('#\[url\](www\.(.*?))\[/url\]#is', '<a href="http://$1">$2</a>', $articleBody);
$articleBody = preg_replace('#\[url="(.*?)"\](.*?)\[/url\]#is', '<a href="$1">$2</a>', $articleBody);
顺便说一句,文档说
$1
优于 \1
来引用捕获组。