DEDECMS采集規則,過濾,替換文章內的部分內容


1.采集去除鏈接
[Copy to clipboard]CODE:
{dede:trim}]*)>([^<]*){/dede:trim}
--------------------------------

讓field:title 標題突破30這個長度,修改代碼的方法
找到./include/inc_arcpart_view.php
行291 :
if($titlelen=="") $titlelen = 30;
修改為
if($titlelen=="") $titlelen = 60;
就可以了,然后,你可以這樣調用了
{dede:channelArtlist typeid='0' col=1 tablewidth='100%'}
{dede:arclist row="10"}
[field:title function="cn_substr('@me',38)" /]


{/dede:arclist}
{/dede:channelArtlist}

把這個延伸一下:關於inc_arcpart_view.php
function GetArcList($typeid=0,$row=10,$col=1,$titlelen=30,$infolen=160,
$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$keyword="",
$innertext="",$tablewidth="100",$arcid=0,$idlist="")
這里的參數都可以更改你實際需要的模板元素尺寸大小.



2. 采集過慮中去掉鏈接保留文字的方法!

柏老大的方法是{dede:trim}<a ([^>]*)>([^<]*)</a>{/dede:trim}
這樣做會去掉<a hf.......>與</a>之間的字符!這樣整個文章就少了部分字符,不完整了!

后來我多次測試,總算找到了正確的使用方法!如下:
{dede:trim}<a([^>]*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}

做成兩條采集規則就可以了!
在實際使用中好像([^<]*)([^>]*)兩條一起使用才行!

3. 過濾div
{dede:trim}]*)>{/dede:trim}
{dede:trim}
{/dede:trim}
過濾js
{dede:trim}]*)>([^<]*){/dede:trim}


過濾未知變量字符
固定(.*)固定


4.dede萬能過濾代碼
以下是常用的正則表達式標簽
{dede:trim}<tbody(.*)>{/dede:trim}
{dede:trim}</tbody>{/dede:trim}
{dede:trim}<table(.*)>{/dede:trim}
{dede:trim}</table>{/dede:trim}
{dede:trim}<tr(.*)>{/dede:trim}
{dede:trim}</tr>{/dede:trim}
{dede:trim}<td(.*)>{/dede:trim}
{dede:trim}</td>{/dede:trim}
{dede:trim}<font(.*)>{/dede:trim}
{dede:trim}</font>{/dede:trim}
{dede:trim}<a(.*)>{/dede:trim}
{dede:trim}</a>{/dede:trim}
{dede:trim}<param(.*)>{/dede:trim}
{dede:trim}<embed(.*)</embed>{/dede:trim}
{dede:trim}<object(.*)</object>{/dede:trim}
{dede:trim}<iframe(.*)</iframe>{/dede:trim}
{dede:trim}<form(.*)</form>{/dede:trim}
{dede:trim}<input(.*)>{/dede:trim}
{dede:trim}<script(.*)</script>{/dede:trim}
{dede:trim}<style(.*)</style>{/dede:trim}
{dede:trim}<!--(.*)-->{/dede:trim}

以下為不常用的正則表達式標簽
{dede:trim}<div(.*)>{/dede:trim}
{dede:trim}</div>{/dede:trim}
{dede:trim}<center(.*)>{/dede:trim}
{dede:trim}</center>{/dede:trim}
{dede:trim}<p(.*)>{/dede:trim}
{dede:trim}</p>{/dede:trim}
{dede:trim}<span(.*)>{dede:trim}
{dede:trim}</span>{dede:trim}
{dede:trim}<img(.*)>{/dede:trim}

/////////////////////////////////////

5.織夢標題不全,鼠標指向顯示全部的代碼:
{dede:arclist titlelen='100'}

[field:title function=' ( strlen("@me")>40 ? cn_substr("@me",40): "@me" ) '/]
{/dede:arclist}

6.dede/inc/inc_archives_functions.php第100行(flash頻道遠程flash本地化的BUG)
$cfg_uploaddir = $GLOBALS['media_dir'];
修改成
$cfg_uploaddir = $GLOBALS['cfg_other_medias'];

6.發布時間,來源,作者可以通過@me函數實現,如:在自定義處理接口:處輸入  @me = "Azure·【博】" 就表示來源為“Azure·【博】”
7. 內容的替換:在所采集的文章內容中有多媒體,使用的是相對路徑,采集的時候又不想下載,最好的辦法就是將地址替換成媒體的實際地址。可以這樣實現,在文章內容規則部分的自定義處理接口:處輸入@me=str_replace('src="str1','src="str2',@me);
這樣采集出來的文章中的所有的str1就被替換成str2!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM