使用与交流
使用与交流

Website construction

首页 > PHPCMS建站 > 使用与交流 > 正文
Phpcms V9去掉iframe过滤,编辑器做到插入第三方视频播放代码
发布时间:2018-04-27 16:00:39

目前很多网站制作项目中,由于需要调用腾讯的视频播放,也就是在内容编辑里边插入一段iframe的视频播放代码,目前也是手机支持播放的转发视频唯一代码,官方默认Phpcms,为了安全等因素,屏蔽了,内容编辑器不支持iframe和javascript过滤的办法,在此分享给大家。

Phpcms V9默认发布修改文章的时候,会调用trim_script()函数过滤一些设定的“不安全”元素,比如frame、iframe、script、javascript,

具体函数的位置:phpcms/libs/functions/global.func.php 149行:

/**
 * 转义 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;
}

修改为:

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 ( '/\<([\/]?)frame([^\>]*?)\>/si', '<\\1frame\\2>', $str );
$str = str_replace ( 'javascript:', 'javascript:', $str );
  }
return $str;
}

以上代码过滤了iframe,也就是把其中的【$str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '<\\1iframe\\2>', $str );】去掉,如果希望编辑器里边可以插入JavaScript,也可以参照方法过滤javascript。

分享到:

关于鸟人IT

郑州鸟人计算机技术有限公司 (鸟人IT) ,是由从事多年互联网界研究的技术人创办,拥有强大的运营团队和技术团队,专注于高端网站定制、企业网站设计、集团网站建设、手机网站定制、微信小程序等应用开发、网站运营、互联网营销等,为企业提供全球化互联网解决方案。公司自创立以来,已成功为600多家企事业单位、政府机关提供过高端互联网服务,其中包括医院等医疗机构、学校等教育机构、政府部门、地方新闻门户机构、行业门户网站、众多优秀企业和个人与我们合作。

立即咨询