建站帮助

诚信合作, 高质专业!

Phpcms V9去掉iframe过滤,编辑器做到插入第三方视频播放代码

2017-09-12 15:13:00 浏览 我要评论

最近的项目中由于需要调用腾讯的视频播放,也就是在内容编辑里边插入一段iframe的视频播放代码,CMSYOU找到有关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', '&lt;\\1script\\2&gt;', $str );
$str = preg_replace ( '/\<([\/]?)iframe([^\>]*?)\>/si', '&lt;\\1iframe\\2&gt;', $str );
$str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '&lt;\\1frame\\2&gt;', $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', '&lt;\\1script\\2&gt;', $str );
$str = preg_replace ( '/\<([\/]?)frame([^\>]*?)\>/si', '&lt;\\1frame\\2&gt;', $str );
$str = str_replace ( 'javascript:', 'javascript:', $str );
  }
return $str;
}

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

最后,欢迎大家收听CMSYOU官方微博,看完CMSYOU思优团队的文章有疑问,那就在下面留言探讨吧!

我要收藏
点个赞吧

相关阅读

本月热门

精选推荐

在线客服

扫一扫,关注我们

扫一扫,关注我们