Php preg_替换表达式和换行表达式

Php preg_替换表达式和换行表达式,php,tags,preg-replace,bbcode,Php,Tags,Preg Replace,Bbcode,所以我把这个BB代码放在一起,稍后将某些标记转换为html标记。这一切都很好,除了当涉及到一个h标记和align=center/left/right/justify标记时,它转换为和您的代码工作正常,您可以探索最终的源代码,例如在Firefox和Chrome中按Ctr+U,您将看到p标记中有一个h1 您的问题是最终的html语法不正确,可能导致浏览器错误。p元素中不能有h1。你可以在网上读到很多关于你的东西 在谷歌搜索h1内的p标签 请参阅w3.org文档 读这个 希望对您有所帮助您能提供一个$

所以我把这个BB代码放在一起,稍后将某些标记转换为html标记。这一切都很好,除了当涉及到一个h标记和align=center/left/right/justify标记时,它转换为和您的代码工作正常,您可以探索最终的源代码,例如在Firefox和Chrome中按Ctr+U,您将看到p标记中有一个h1

您的问题是最终的html语法不正确,可能导致浏览器错误。p元素中不能有h1。你可以在网上读到很多关于你的东西

在谷歌搜索h1内的p标签

请参阅w3.org文档

读这个


希望对您有所帮助

您能提供一个$sound\u edit\u long\u desc示例,用于使用parseBBCode函数进行测试吗?@Kstro21[align=center][h]测试文本[/h][/align]
function parseBBCode($sound_edit_long_desc){
$original = array(
'/\[b\](.*?)\[\/b\]/',
'/\[h\](.*?)\[\/h\]/',
'/\[i\](.*?)\[\/i\]/',
'/\[u\](.*?)\[\/u\]/',
'/\[s\](.*?)\[\/s\]/',
'/\[img\](.*?)\[\/img\]/',
'/\[url\=(.*?)\](.*?)\[\/url\]/',
'/\[code\](.*?)\[\/code\]/',
'/\[align=left\](.*?)\[\/align\]/',
'/\[align=right\](.*?)\[\/align\]/',
'/\[align=center\](.*?)\[\/align\]/',
'/\[align=justify\](.*?)\[\/align\]/'
);
$replace = array(
'<strong>\\1</strong>',
'<h1>\\1</h1>',
'<em>\\1</em>',
'<u>\\1</u>',
'<strike>\\1</strike>',
'<img src="\\1">',
'<a href="\\1" class="alink" target="_blank">\\2</a>',
'<code>\\1</code>',
'<p class="post" style="text-align: left;">\\1</p>',
'<p class="post" style="text-align: right;">\\1</p>',
'<p class="post" style="text-align: center;">\\1</p>',
'<p class="post" style="text-align: justify;">\\1</p>'
);
$new = preg_replace($original, $replace, $sound_edit_long_desc);
 return nl2br($new);
}