帮助:停止破坏HTML设计

时间:2011-09-22 22:45:03

标签: html

我的论坛有一些类似BBCode的代码:

[quote]打开tabletrtd ... [/quote]关闭了tabletrtd ...

但是当用户写下另一个[/quote]时,它会添加另一个</td></tr></table>,这会关闭“论坛正文”所在的表格。

我知道可能有一个简单的解决方案,但是我把它放在哪里因此关闭一个表不会“破坏布局”可以这么说?

股利?跨度?

还是更复杂?

2 个答案:

答案 0 :(得分:1)

它更复杂 - 没有办法告诉HTML解析器“忽略这两点之间的规范”而没有告诉它将内部部分视为原始文本......这将无法工作,因为您正在生成HTML这个BBCode。您需要验证用户输入的BBCode以确保它“格式良好”。

如果只是不是一个选项,你可以通过确保你的论坛主体只包含在BBCode到HTML生成器不生成的标签中来破解它 - 但这限制了你很多bit,并不保证虚假关闭标签不会破坏您的布局。

答案 1 :(得分:1)

尝试preg_replace / regex:

preg_replace('/\[quote\](.*)\[\/quote\]/', "<table><tr><td>$1</td></tr></table>", $string);

这将匹配第一个结束引用标记。