你现在的位置:首页 > PHP网站建设知识库 > phpcms > 正文

phpcms V9 去除内容页里面的div字符串,防止网页变形

因为在内容页模板里面,已经是写死了的代码,在内容里面出现一对div 也会不其然地造成页面变形。网上找了半天,都是在研究如何显示js。

只能自己找找,文件phpcms\libs\functions\global.func.php,大约130行左右。

/**
* 转义 javascript 代码标记
*
* @param $str
* @return mixed
*/
function trim_script($str) {
        if(is_array($str)){
                foreach ($str as $key => $val){
                        $str[$key] = trim_script($val);
                }
        }else{
                $str = preg_replace ( '/\<([\/]?)script([^\>]*?)\>/si', '<\\1script\\2>', $str );
                $str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '<\\1iframe\\2>', $str );
                $str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '<\\1frame\\2>', $str );
                $str = str_replace ( 'javascript:', 'javascript:', $str );
        }
        return $str;
}


增加一个替换div的吧,因为如果过滤的话,又怕没有p控制缩进。(我是对内容里面的p进行了css控制缩进)
加上这个
$str = preg_replace ( '/\<([\/]?)div([^\>]*?)\>/si', '<\\1p\\2>', $str );


最后结果
/**
* 转义 javascript 代码标记
*
* @param $str
* @return mixed
*/
function trim_script($str) {
        if(is_array($str)){
                foreach ($str as $key => $val){
                        $str[$key] = trim_script($val);
                }
        }else{
                $str = preg_replace ( '/\<([\/]?)script([^\>]*?)\>/si', '<\\1script\\2>', $str );
                $str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '<\\1iframe\\2>', $str );
                $str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '<\\1frame\\2>', $str );
                $str = preg_replace ( '/\<([\/]?)div([^\>]*?)\>/si', '<\\1p\\2>', $str );
                $str = str_replace ( 'javascript:', 'javascript:', $str );
        }
        return $str;
}