• 技术文章 >后端开发 >php教程

    [原创]为找房方便 ,将sohu焦点的 rss 改成全文的.解决方案

    2016-06-13 12:55:29原创420
    [原创]为找房方便 ,将sohu焦点的 rss 改成全文的.
    本帖最后由 PhpNewnew 于 2012-07-03 07:50:15 编辑

    房价貌似快要涨了,俺最近天天加班,俺媳妇来负责找房源,可她那狗屎公司无法上网,只好用ipad 加载rss 离线看,结果狗屎sohu焦点的rss 非全文rss ,为了老婆找房方便,写了点代码,用于生成全文的rss. 希望借此机会,尝试一下代码改善生活的感觉. 不废话吧,直接贴代码了.

    header("Content-type: text/html; charset=utf-8");
    ini_set("max_excution_time" ,3600);
    $url = "http://sz.focus.cn/common/xml/rss/news/hot.php";

    $newItemArr = parseItems( $url );
    $xmlItemContent = makeRssItemString( $newItemArr ); //重新生成item 内容,将下载内容替换descript.

    //rss xml 的头尾字符串
    $xmlPre = '




    xmlns:focus="http://house.focus.cn"
    xmlns:F="http://house.focus.cn"
    docType="rss"
    F:docType="rss"
    >
    pageIndex=""
    pageSize="20"
    recordCount=""
    F:pageIndex=""
    F:pageSize="20"
    F:recordCount="">

    <![CDATA[热点新闻-搜狐焦点网深圳站 ]]>
    http://sz.focus.cn/newscenter/xwsy.html
    http://images.house.focus.cn/img/newhouselogo.gif

    热点新闻-搜狐焦点网深圳站
    http://sz.focus.cn/newscenter/xwsy.html

    Copyright 2012, sohu.com Inc., all rights reserved
    zh-cn
    Mon, 02 Jul 2012 21:44:21 +0800
    Mon, 02 Jul 2012 21:44:21 +0800
    地产综合
    30';
    $xmlAppend = '
    ';


    $xmlOutput = $xmlPre . $xmlItemContent . $xmlAppend ;
    echo $xmlOutput;


    /**
    * @param $url
    * @return array itemObj
    */
    function parseItems( $url )
    {
    $xmlObj = simplexml_load_file( $url );
    $items = $xmlObj -> channel -> item;

    $resultArr = array();

    foreach( $items as $item ):
    $resultArr []= makeRssItemObj( $item );
    endforeach;

    return $resultArr;
    }



    /**
    * @param $item
    * @return itemObj
    */
    function makeRssItemObj( $item )
    {
    // $item->link = "demo.html";
    $urlContent = fileGetContent( $item->link ); //如果不支持curl 就用file_get_content 或者socket 连接来实现.

    $urlContent = @iconv("gb2312","utf-8",$urlContent);

    // $content = iconv("gb2312" , "utf-8" , $content);
    preg_match("/id=\"newscontent\">([\d\D]+)/iU" , $urlContent , $matchArr);

    $item->description = $matchArr[1];

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:nbsp gt lt rss item

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 你知道如何用PHP实现多进程吗• PHP与MySQL连接的方法总结• 求解:phpcms模板怎样转码?该怎么解决• php 之 cookie 跟 session 简单解读(笔记)• php怎的快捷知道某个函数在哪个文件用过
    1/1

    PHP中文网