Phpcms V9去掉iframe过滤 手机不播放视频问题

    发布时间:2020-05-08 13:17:33

    阅读量

    广告位招租,联系QQ:9056731

    最近的项目中由于需要调用腾讯的视频播放,也就是在内容编辑里边插入一段iframe的视频播放代码,ABC源码网找到有关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。

    自适应手机端不能播放问题

    \phpcms\modules\wap\index.php

     

    $content = content_strip(wml_strip($content)); 
       

    修改为

    //$content = content_strip(wml_strip($content));


    意思就是在前面多加 //

    广告位招租,联系QQ:9056731
    留言与评论(共有 0 条评论)
       
    验证码: