php168采集规则过滤超链接

PHP168不能像dedecms一样在编写采集规则的时候添加正则表达式过滤掉超链接、JS等。我们只需要稍微修改一个PHP168的程序,即可一劳永逸,下面说详细的方法。

首先打开php168里面的admin/gather.php,查找

代码: 
//文章结尾做正则处理

在其上面添加下面的代码

代码: 
        //文章内容自动过滤开始
        $search = array ("'<script[^>]*?>.*?</script>'si",//过滤SCRIPT标记
                "'<iframe[^>]*?>.*?</iframe>'si", //过滤IFRAME标记
                "'<style[^>]*?>.*?</style>'si",//过滤STYLE标记
                "'<[\/\!]*span[^<>]*?>'si",//过滤SPAN标记
                "'<[\/\!]*font[^<>]*?>'si",//过滤FONT标记
                "'<[\/\!]*a[^<>]*?>'si",//过滤A标记,如果要过滤链接中的字,必须在过滤规则中写下。
                "'<[\/\!]*div[^<>]*?>'si",//过滤DIV标记
                "'<[\/\!]*table[^<>]*?>'si",//过滤TABLE标记
                "'<[\/\!]*p[^<>]*?>'si",//过滤P标记
                "'<[\/\!]*o:p[^<>]*?>'si",//过滤o:p标记
                "'<[\?\!]*xml:[^<>]*?>'si",//过滤xml:标记
                "'<[\/\!]*select[^<>]*?>'si",//过滤select标记
                "'<[\/\!]*option[^<>]*?>'si",//过滤option标记
                "'<[\/\!]*v:[^<>]*?>'si",//过滤v:标记
                "'<[\/\!]*o:[^<>]*?>'si",//过滤o:标记
                "'id=([^\s>]*)|class=([^\s>]*)|name=([^\s>]*)|align=([^\s>]*)|cellpadding=([^\s>]*)|cellspacing=

([^\s>]*)|border=([^\s>]*)|bordercolor=([^\s>]*)|background=([^\s>]*)|bgcolor=([^\s>]*)'si",
                "'&#(\d+);'e");                   
        $replace = array ("",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "",
                  "chr(\\1)");
        $show_content=preg_replace($search,$replace,$show_content);
        $show_content=preg_replace("/style=['\"]*([^'\"]*)['\"]*/is","",$show_content);//感谢帮助
        $show_content=str_replace("\r\n","",$show_content); //去除HTML中的换行符

保存文件即可,这样PHP168采集到的文章就会自动过滤掉iframe,文字颜色等任何你不想要的代码。

这个代码会把<p>标签都过滤掉,如果我们要用它来实现换行,在编写php168采集规则的时候注意把<p>都替换成<br />。
即在过滤框中输入<p>|<br />

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注