防止PHP Tidy将样式标记数据转换为CDATA
我正在使用php tidy清理用户生成的HTML页面,该页面包含一个样式标记:防止PHP Tidy将样式标记数据转换为CDATA,php,html,tidy,Php,Html,Tidy,我正在使用php tidy清理用户生成的HTML页面,该页面包含一个样式标记: <style type="text/css"> body { padding-top: 60px; padding-bottom: 40px; } </style> 我尝试了很多搜索,但是PHP Tidy库并不是一个“文档化”的库! 因此,它归结为在Tidy清理/修复代码后手动删除CDATA $buffer = str_replace("/*&
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
</style>
我尝试了很多搜索,但是PHP Tidy库并不是一个“文档化”的库!
因此,它归结为在Tidy清理/修复代码后手动删除CDATA
$buffer = str_replace("/*<![CDATA[*/","",$buffer);
$buffer = str_replace("/*]]>*/","",$buffer);
$buffer=str\u replace(“/**/”,“”,$buffer);
现在我使用这种方法的问题是,样式标记数据的缩进仍然是错误的(没有与页面的其余部分完全对齐)
身体{
填充顶部:60px;
填充底部:40px;
}
那么,我该如何防止TIDY在页面上创建CDATA呢
非常感谢 处理它的一种方法是使用指向外部样式表的链接
<link rel="stylesheet" type="text/css" media="screen, print" href="site.css">
添加CDATA标记的目的是帮助浏览器知道应该解析字符,如“关闭输出xhtml
选项。XHTML需要CDATA包装,因为CSS可以包含不可缩放的
字符。正如我提到的,页面是用户生成的,所以我正在寻找一种解决方案,可以阻止CDATA标记的创建。。转移到外部样式表显然是一种选择,但我希望它是最后的手段…是的,我知道CDATA的用途,我唯一关心的是,它在样式标记中并没有多大用处,浏览器足够聪明,可以解码并适当地使用它。。。那么有没有办法避免这个“不必要的”插件呢!啊,我真不敢相信我这么做了。。。花几个小时在这个上面!!非常感谢:)从今天起,OP应该同时取消激活和激活,即具有'output-xhtml'=>false
和'output-html'=>true
(使用HTMLTidy for Linux 5.4.0版测试)。
$buffer = str_replace("/*<![CDATA[*/","",$buffer);
$buffer = str_replace("/*]]>*/","",$buffer);
<style type="text/css">
body {
padding-top: 60px;
padding-bottom: 40px;
}
</style>
<link rel="stylesheet" type="text/css" media="screen, print" href="site.css">