【发布时间】:2023-04-11 07:53:01
【问题描述】:
我有这个功能:
function parse_bbcode($str = ''){
$find = array(
"'\[b\](.*?)\[/b\]'is",
"'\[i\](.*?)\[/i\]'is",
"'\[u\](.*?)\[/u\]'is",
"'\[s\](.*?)\[/s\]'is",
"'\[img\](.*?)\[/img\]'i",
"'\[url\](.*?)\[/url\]'i",
"'\[url=(.*?)\](.*?)\[/url\]'i",
"'\[link\](.*?)\[/link\]'i",
"'\[link=(.*?)\](.*?)\[/link\]'i"
);
$replace = array(
'<strong>\\1</strong>',
'<em>\\1</em>',
'<u>\\1</u>',
'<s>\\1</s>',
'<img src="\\1" alt="" width="100%" />',
'<a href="\\1">\\1</a>',
'<a href="\\1">\\2</a>',
'<a href="\\1">\\1</a>',
'<a href="\\1">\\2</a>'
);
return preg_replace($find, $replace, $str);
}
用于解析 bbcodes。
如何为 bbcodes 添加可选转义?
例子:
谢谢[b]你[/b]迈克! - 谢谢你迈克!
感谢\[b]你[/b]迈克! - 谢谢[b]你[/b]迈克!
【问题讨论】:
-
BBcode 是 1998 年的!我可以问一下你为什么要重新发明这个东西吗?
-
嗨 Lory,你为什么要自己创建一个函数?您是否尝试过 packagist 的 BB 代码?我个人安装了一个作曲家BB代码,它完美无瑕!见:packagist.org/?q=bbcodes&idx=packagist&p=0
标签: php regex parsing preg-replace bbcode