我正在考虑添加一个富文本编辑器,允许非程序员更改文本的外观。但是,有一个问题是,如果标记不正确,可能会扭曲呈现页面的布局。什么是清理html的好的轻量级方法?
发布于 2011-04-01 19:31:48
你将不得不在好的和轻量级之间做出选择。推荐的选择是'HTMLPurifier',因为它提供了安全的默认设置。作为更快的替代方法,通常建议使用“htmLawed”。
另请参阅HTMLPurifier作者的这篇相当客观的概述:http://htmlpurifier.org/comparison
发布于 2011-04-01 19:29:09
我真的很喜欢,它允许您指定在您的HTML代码中允许哪些标记和属性,并生成有效的HTML.
发布于 2011-04-01 19:28:23
使用BB码(或者像这里这样),否则机会非常小。示例函数...
function parse($string){
$pattern = array(
"/\[url\](.*?)\[\/url\]/",
"/\[img\](.*?)\[\/img\]/",
"/\[img\=(.*?)\](.*?)\[\/img\]/",
"/\[url\=(.*?)\](.*?)\[\/url\]/",
"/\[red\](.*?)\[\/red\]/",
"/\[b\](.*?)\[\/b\]/",
"/\[h(.*?)\](.*?)\[\/h(.*?)\]/",
"/\[p\](.*?)\[\/p\]/",
"/\[php\](.*?)\[\/php\]/is"
);
$replacement = array(
'<a href="\\1">\\1</a>',
'<img alt="" src="\\1"/>',
'<img alt="" class="\\1" src="\\2"/>',
'<a rel="nofollow" target="_blank" href="\\1">\\2</a>',
'<span style="color:#ff0000;">\\1</span>',
'<span style="font-weight:bold;">\\1</span>',
'<h\\1>\\2</h\\3>',
'<p>\\1</p>',
'<pre><code class="php">\\1</code></pre>'
);
$string = preg_replace($pattern, $replacement, $string);
$string = nl2br($string);
return $string;
}..。
echo parse("[h2]Lorem Ipsum[/h2][p]Dolor sit amet[/p]");结果...
<h2>Lorem Ipsum</h2><p>Dolor sit amet</p>

或者只使用HTML Purifier :)
https://stackoverflow.com/questions/5512712
复制相似问题