POST TIME:2018-03-15 21:19
在采集某視頻網(wǎng)站的時(shí)候,可能會(huì)遇到他的視頻地址源代碼里面的是html代碼,而這html代碼如果是直接放在源代碼里面的話 就會(huì)讓視頻沒法運(yùn)行.... 如圖采集回來的視頻信息
而如果從那邊采集回自己的數(shù)據(jù)庫里面 肯定也會(huì)存html代碼.這樣的話就需要把html和文本之間,本來之前是想在采集的時(shí)候就把他轉(zhuǎn)換成瀏覽器能夠讀出來的文本格式存儲(chǔ).
解決辦法:用dede的Html2Text 這個(gè)function定義的位置(include/inc/inc_fun_funString.php)
{dede:field.body function="Html2Text(@me)"/}可是用這個(gè)函數(shù)之后 重新生成一次 并沒有完全轉(zhuǎn)換. 如圖
<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>
而如果視頻想要正常播放 一段正常的代碼是需要< > "(雙引號(hào)不加也可以,個(gè)人覺得加上還是比較好)
打開include/inc/inc_fun_funString.php
找到默認(rèn)的代碼 30行左右
$alltext = str_replace(" "," ",$alltext);
$alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
$alltext = preg_replace("/[ ]+/s"," ",$alltext);
就可以看出 他這里做的操作不是替換,而是等于刪除操作,把html代碼的<>空格都刪除
所以 我們需要做的是 把他們的htmm代碼與文本之間對(duì)應(yīng)起來替換即可.
這三行可以注釋掉 以后可能會(huì)用到 .
替換為如下格式
//全角的空格替代為半角空格
$alltext = str_replace(" "," ",$alltext);
//< 替代為 <
$alltext = str_replace("<","<",$alltext);
//> 替代為 >
$alltext = str_replace(""","&;",$alltext);
//"替代為"
$alltext = str_replace(">",">",$alltext);
//將所有換行 替代為 <br/>
$alltext = preg_replace("/[ ]{1,}/isU","<br/> ",$alltext);
在需要輸出轉(zhuǎn)換為文本類型的地方把代碼修改一下 用這個(gè)定義好的function即可
例如:{dede:field.body function="Html2Text(@me)"/}/如果用Text2Html則可以逆向操作,舉一反三