//use tidy to repair html code
// tidy 的参数设定
$conf = array(
'output-xhtml'=>true
,'drop-empty-paras'=>FALSE
,'join-classes'=>TRUE
,'show-body-only'=>TRUE
);
//repair
$str = tidy_repair_string($html,$conf,'utf8');
//生成解析树
$str = tidy_parse_string($str,$conf,'utf8');
$s ='';
//得到body节点
$body = @tidy_get_body($str);
//函数 _dumpnode,检查每个节点,过滤后输出
function _dumpnode($node,&$s){
//查看节点名,如果是<script> 和<style>就直接清除
switch($node->name){
case 'script':
case 'style':
return;
break;
default:
}
if($node->type == TIDY_NODETYPE_TEXT){
/*
如果该节点内是文字,做额外的处理:
过长文字的自动换行问题;
超链接的自动识别(未实现)
*/
// insert <wbr>
$s .= HtmlInsertWbrs($node->value,30,'','&?/');
// auto links ??? *** TODO ***
return;
}
//不是文字节点,那么处理标签和它的属性
$s .= '<'.$node->name;
//检查每个属性
if($node->attribute){
foreach($node->attribute as $name=>$value){
/*
清理一些DOM事件,通常是on开头的,
比如onclick onmouseover等....
或者属性值有javascript:字样的,







