Home  >  Article  >  Backend Development  >  PHP 调用新浪滚动新闻

PHP 调用新浪滚动新闻

WBOY
WBOYOriginal
2016-06-23 14:12:061338browse

本帖最后由 a999888789 于 2012-11-30 16:06:44 编辑

http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=90

程序需要用PHP调用新闻,以URL:title的格式输入~~调出前10条新闻
如何搞呢?

回复讨论(解决方案)

这个是数据采集,有多种方式实现,既可以用file_get_contents,也可以使用curl
可以看这个网站视频http://www.php100.com/html/shipinjiaocheng/PHP100shipinjiaocheng/2009/0416/810.html

本帖最后由 xuzuning 于 2012-11-30 18:28:33 编辑

他返回的是 js 语句
去除掉开始的 “var jsonData = ”和最后的“;”,处理后才可识别

本帖最后由 xuzuning 于 2012-11-30 18:28:33 编辑
            他返回的是 js 语句
去除掉开始的 “var jsonData = ”和最后的“;”,处理后才可识别

<?php$url='http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=90';$s = file_get_contents($url);$content=str_replace('var jsonData =','',$s);$content=str_replace(';','',$content);$J=json_decode($content); echo $J->serverSeconds;?>

处理了,还是不行呀~

不是跟你说了吗?那是 js 语句
自然也就不是 json
php json_decode 要求的 json 的格式比较严格,键和值都要用双引号括起
所以才有“处理后"一说

直接js 处理吧 跟sina 一样 js 可以直接将返回结果解析出来
你判断一下取前10条就行了

楼主,先提供一个js 版的先用着,php 版的有点折腾,主要是sina 的js 响应不是特别标准.无法直接用json_decode 来处理.

<script src="http://roll.news.sina.com.cn/interface/rollnews_ch_out_interface.php?col=90"></script><script type="text/javascript">        function addItem(title,url)        {            var html = '<a href="'+url+'" >'+title+'</a><br/>';            document.getElementById("demo_content").innerHTML += html;        }        function init()        {            var listdata = jsonData.list;            //   console.log( listdata );            var title ='';            var url = '';            for(var item in listdata){                title = listdata[item].title;                url = listdata[item].url;                // alert(title);                addItem(title,url)            }        }</script><body onload="init()"><div id = 'demo_content'>here is the content<hr/></div></body>    

引用 3 楼 xuzuning 的回复:本帖最后由 xuzuning 于 2012-11-30 18:28:33 编辑
            他返回的是 js 语句
去除掉开始的 “var jsonData = ”和最后的“;”,处理后才可识别

PHP code??12345678
为什么要这样呢?
直接引入不就可以了啊!看#7楼的 http://bbs.csdn.net/topics/390300559#post-393078980

mu_rain :你好!看了你在http://bbs.csdn.net/topics/390300559#post-393078980的代码,可以用。如果修改下,让每一行限制在10个汉字,同时,调用前15条新闻,怎么做呢?

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