Home >Backend Development >PHP Tutorial > CSDN论坛RSS阅读,(新手学采集,原创),多谢指教

CSDN论坛RSS阅读,(新手学采集,原创),多谢指教

WBOY
WBOYOriginal
2016-06-13 13:43:07853browse

CSDN论坛RSS阅读,(新手学采集,原创),谢谢指教。
情况是这样的:CSDN论坛,没有手机版,也没有平板电脑版;其他有几位好汉,自行设计了一个addroid系统上的安装版,也有其不好之处:一定要安装(占空间占内存)而且没法自定义自己喜欢的版块。

我个人喜欢在公交车上看点东西,晚上也喜欢在床上访问csdn论坛,为了学习嘛没办法。若直接打开www.csdn.net 我的流量怎么办呢?加载时间很长且错版,全是广告、图片。今天自己写了一个可以阅读csdn rss的程序,为了学习采集与xml吧,与共好汉分享一番。如下

程序名:csdn论坛阅读(手机,平板电脑专用)

演示地址:http://www.ruci.org/rss.php

原理:php读csdn的rss,再采集论坛中各用户的发言。

特点:适合在手机、平板电脑、pda移动终端上访问论坛,无多余图片,无广告,可自定义自己喜欢的版块,加载速度快,流量少,免安装之特点。
请高手指点一番,不妥之处,谢谢。
rss.php

PHP code



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CSDN论坛RSS阅读</title>


<h3>CSDN论坛RSS阅读,平板电脑专用</h3>

show.php
PHP code



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>csdn在线浏览器</title>


<p><a href="rss.php">返回</a></p>
<?php if($_GET['m']){
    $rss_link="http://bbs.csdn.net/ASCX/NewHomePage/ModeratorRecommend/".$_GET['t'].".xml";//定义远

程RSS链接
    }
else{
    $rss_link="http://forum.csdn.net/Rss/".$_GET['t']."/UnClosedList/";//定义远程RSS链接
    }
    
    $dom=new DOMDocument();//创建DOM对象
    $dom->load($rss_link);//读取xml文件
    $rss_root=$dom->documentElement;//获取xml数据的根
    $items=$rss_root->getElementsByTagName("item");//获得所有的item节点

    foreach($items as $it){//读取第一个item节点
        $children=$it->childNodes;//获取$it的所有节点;
        $row_array=array();//初始化数组

            foreach($children as $key=>$e)//处理每一个item
                {
                if((strcmp($e->nodeName,"title")==0))//获得每个item的title和link
                    {
                        $row_array[$e->nodeName]="*".$e->nodeValue;
                    }    
                if((strcmp($e->nodeName,"link")==0))
                    {
                        $row_array[$e->nodeName]="<a href="showContent.php?%0A%0At=%22.%24e->nodeValue.%22">Read</a>";    
                    }
                }
                $row=implode("=>",$row_array);//将读取的数据保存到字符串中
                $row.="<br>";
                echo $row;
        }
?>




showContent.php
PHP code



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>


<p><a href="javascript:history.back()">返回</a></p>
<?php $url=$_GET['t'];
//$url="http://topic.csdn.net/u/20120315/21/55ed47df-9ae2-4958-8446-5f659415c743.html";
$con= file_get_contents($url);
function getUrl($url)
{
$url=substr($url,36,36);
return $url;
}

$preg='#<div class="msgfont">(.*)#iUs';
$preg2='#\(this,111\);\'>(.*)#U';
preg_match_all($preg, $con, $arr);
preg_match_all($preg2, $con, $arr2);

for($i=0;$i<count echo if>';
        }
    else{
        echo "第".$i."楼".$arr2[1][$i].":".$arr[1][$i].'<br>';
        }
    }

?>


 <div class="clear">
                 
              
              
        
            </div></count>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn