• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    dede5.7中采集视频站地址的小BUG解决办法
    POST TIME:2018-03-15 21:19

    在采集某视频网站的时候,可能会遇到他的视频地址源代码里面的是html代码,而这html代码如果是直接放在源代码里面的话 就会让视频没法运行.... 如图采集回来的视频信息

    而如果从那边采集回自己的数据库里面 肯定也会存html代码.这样的话就需要把html和文本之间,本来之前是想在采集的时候就把他转换成浏览器能够读出来的文本格式存储.

    解决办法:用dede的Html2Text 这个function定义的位置(include/inc/inc_fun_funString.php)

    {dede:field.body function="Html2Text(@me)"/}可是用这个函数之后 重新生成一次 并没有完全转换. 如图

    <embed src="http://player.ku6.com/refer/6RUW7w0CXg8rI4xo7ywAIw../v.swf" width="480" height="400" allowscriptaccess="always" allowfullscreen="true" type="application/x-shockwave-flash" flashvars="from=ku6"></embed>

    而如果视频想要正常播放 一段正常的代码是需要< > "(双引号不加也可以,个人觉得加上还是比较好)

    打开include/inc/inc_fun_funString.php

    找到默认的代码 30行左右

    $alltext = str_replace(" "," ",$alltext);
    $alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
    $alltext = preg_replace("/[ ]+/s"," ",$alltext);

    就可以看出 他这里做的操作不是替换,而是等于删除操作,把html代码的<>空格都删除

    所以 我们需要做的是 把他们的htmm代码与文本之间对应起来替换即可.

    这三行可以注释掉 以后可能会用到 .

    替换为如下格式

    //全角的空格替代为半角空格
    $alltext = str_replace(" "," ",$alltext);
    //< 替代为 &lt
    $alltext = str_replace("&lt;","<",$alltext);
    //> 替代为 &gt
    $alltext = str_replace("&quot;","&;",$alltext);
    //"替代为&quot;
    $alltext = str_replace("&gt;",">",$alltext);
    //将所有换行 替代为 <br/>
    $alltext = preg_replace("/[ ]{1,}/isU","<br/> ",$alltext);

    在需要输出转换为文本类型的地方把代码修改一下 用这个定义好的function即可

    例如:{dede:field.body function="Html2Text(@me)"/}/如果用Text2Html则可以逆向操作,举一反三


    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!