带有转义选项的PHP bbcode解析器
我有以下功能:带有转义选项的PHP bbcode解析器,php,regex,parsing,preg-replace,bbcode,Php,Regex,Parsing,Preg Replace,Bbcode,我有以下功能: function parse_bbcode($str = ''){ $find = array( "'\[b\](.*?)\[/b\]'is", "'\[i\](.*?)\[/i\]'is", "'\[u\](.*?)\[/u\]'is", "'\[s\](.*?)\[/s\]'is", "'\[img\](.*?)\[/img\]'i", "'\[url\](.*?)\[/
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);
}
函数解析代码($str=''){
$find=数组(
“\[b\](.*?\[/b\]”是“,
“\[i\](.*?\[/i\]是”,
“\[u\](.*?\[/u\]”是“,
“\[s\](.*?\[/s\]”是“,
“\[img\](.*?\[/img\]'i”,
“'\[url\](.*?\[/url\]'i”,
“'\[url=(.*?\](.*?\[/url\]'i”,
“'\[link\](.*?\[/link\]'i”,
“'\[link=(.*?\](.*?\[/link\]]i”
);
$replace=数组(
“\\1”,
'\\1',
'\\1',
'\\1',
'',
'',
'',
'',
''
);
返回preg_replace($find,$replace,$str);
}
用于解析BBS代码
如何为BBCODE添加可选性转义
例如:
谢谢你,迈克谢谢你,迈克
谢谢你,迈克谢谢你,迈克 看来是我干的
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",
"'([^\\\\])\\\\\['i"
);
$replace = array(
'\\1<strong>\\2\\3</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>',
'\\1['
);
return preg_replace($find, $replace, $str);
}
函数解析代码($str=''){
$find=数组(
“([^\\\]\[b\](.*)([^\\\])\[/b\]'是”,
“\[i\](.*?\[/i\]是”,
“\[u\](.*?\[/u\]”是“,
“\[s\](.*?\[/s\]”是“,
“\[img\](.*?\[/img\]'i”,
“'\[url\](.*?\[/url\]'i”,
“'\[url=(.*?\](.*?\[/url\]'i”,
“'\[link\](.*?\[/link\]'i”,
“'\[link=(.*?\](.*?\[/link\]'i”,
“([^\\\])\\\\\\\\\['i”
);
$replace=数组(
“\\1\\2\\3”,
'\\1',
'\\1',
'\\1',
'',
'',
'',
'',
'',
'\\1['
);
返回preg_replace($find,$replace,$str);
}
(此示例仅转义[b]标记!)BBcode来自1998年!请问您为什么要重新发明它?嗨,Lory,您为什么要自己创建一个函数?您是否尝试过packagist的BB代码?我个人安装了一个composer BB codes,它工作得非常完美!请参阅: