首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSS源混搭死了

RSS源混搭死了
EN

Stack Overflow用户
提问于 2011-12-02 00:18:41
回答 1查看 3.3K关注 0票数 1

我得到以下PHP致命错误

致命错误:堆栈跟踪中带有消息“String”的未命名异常“exception”不能解析为XML。

错误日志指向行。

代码语言:javascript
复制
$xml = new SimpleXMLElement($data);

(除了下面的代码外,这是代码后面的下一行)作为罪魁祸首。

但是,当我单独运行每个提要时,没有错误,提要保存到数据库中。

这是生成错误的代码:

代码语言:javascript
复制
$feeds = array( 
     'http://www.mtv.com/rss/news/news_full.jhtml',
     'http://www.musicweek.com/rss.asp?navcode=232',
     'http://www.cmt.com/rss/news/latestcached.jhtml',
     'http://www.billboard.com/rss/news',
 );

foreach ($feeds as $feed)
{
    $ch = curl_init();

     // causes error:
    curl_setopt($ch, CURLOPT_URL, $feed);

    // works:
    curl_setopt($ch, CURLOPT_URL, 'http://www.billboard.com/rss/news');

    curl_setopt($ch, CURLOPT_HEADER, 0 );
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch); // put data from rss url into variable
    curl_close($ch);
    ...

如果我切换注释行并使用$feed变量,错误和白页。在今天下午之前,它运行得很好,所以我怀疑在其中一个提要中有一些XML是非法的,从而触发了这一点。

是否有更好的方法来编写这个--或者--如果有必要的话,用某种方法来捕获异常?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-02 00:45:38

罪魁祸首是http://www.mtv.com/rss/news/news_full.jhtml。如果您加载页面,您将得到一个可爱的错误。这是Chrome的

此页面包含以下错误:

第38栏第296行上的错误:开始和结束标签不匹配:下面第0行和第i行是页面的呈现,直到第一个错误。

有问题的线路目前内容如下:

代码语言:javascript
复制
<shorthead>Big K.R.I.T. Promises </i>Live From The Underground<i> In Early 2012</shorthead>

毫不奇怪,它完全失败了。

至于捕获错误,请将代码包装在

代码语言:javascript
复制
try {
     //... your code ...
} catch(Exception $exception){
     //. . . Do somethign with exception ... 
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8350263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档