dede5.7中采集视频站地址的小BUG如何解决办法

愿我们努力拼搏,征战沙场,不忘初心,努力成为一个浑身充满铜臭味的有钱人。

在采集某视频网站的时候,可能会遇到他的视频地址源代码里面的是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("/[\r\n]{1,}/isU","<br/>\r\n",$alltext);

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

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

本文dede5.7中采集视频站地址的小BUG如何解决办法到此结束。认真、信心+勤奋,一切皆有可能。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
织梦后台文档列表添加复制文档功能支持所有模型

织梦无法上传ico图标格式文件的如何解决方法

dedecms如何实现任意页面调用当前会员信息的方

织梦dede:tag调用指定多个栏目的TAG标签

织梦栏目列表按附加表自定义字段排序