当前位置: 代码迷 >> PHP >> 新人提问:这个有关问题也太诡异了吧。关于RSS的基础应用
  详细解决方案

新人提问:这个有关问题也太诡异了吧。关于RSS的基础应用

热度:89   发布时间:2016-04-29 00:18:45.0
新人提问:这个问题也太诡异了吧。。关于RSS的基础应用
PHP code
<?php    require_once('magpierss/rss_fetch.inc');        $url = "http://localhost/PHPProject/RSS/RSS.xml";    $rss = fetch_rss($url);        $feedTitle = $rss->channel['title'];    echo '<p>Latest News from <strong>' . $feedTitle . '</strong></p>';        foreach ($rss->item as $it) {        $link = $it['link'];        $title = $it['title'];        $description = isset($it['description']) ? $it['description'] : '';                echo '<p><a href=\"$link\">' . $title . '</a><br />' . $description . '</p>';    }?>


XML:
(http://localhost/PHPProject/RSS/RSS.xml)
XML code
  <?xml version="1.0" encoding="UTF-8" ?> - <rss version="2.0">- <channel>  <title>XHTML</title>   <link>http://localhost/PHPProject/NewFile.html</link>   <description>Free web building tutorials</description>   <category>Web development</category>   <language>en-US</language>   <copyright>2006 w3school.com.cn. All rights reserved.</copyright> - <item>  <title>RSS Tutorial</title>   <link>http://localhost/PHPProject/NewFile.html</link>   <description>New RSS tutorial on W3School</description>   <author>[email protected]</author>   <comments>http://localhost/PHPProject/NewFile.html</comments>   </item>  </channel>  </rss>


1.
为什么运行显示为:
Latest News from W3School Home Page

RSS Tutorial
New RSS tutorial on W3School

后点击RSS Tutorial后却显示HTTP 403?




2.
在PHP中的foreach ($rss->item as $it)中的item为什么非要设置items才可以运行成功,否则为
Latest News from W3School Home Page


Notice: Undefined property: MagpieRSS::$item in D:\Apache Group\Apache2\htdocs\PHPProject\index5.php on line 10

Warning: Invalid argument supplied for foreach() in D:\Apache Group\Apache2\htdocs\PHPProject\index5.php on line 10


但我的XML中<channel>之内是<item>而非<items>喔。。。。




3.
我修改XML文件之前的<channel>中的<title>是“W3School Home Page”,所以运行时显示为Latest News from W3School Home Page;但修改后却如上所示<title>XHTML</title>,为什么刷新后也显示Latest News from W3School Home Page?

就算重启整个zend studio都继续显示Latest News from W3School Home Page,真不明白。。。。也不关缓存的事啊。。我已经清除了缓存了


麻烦各位帮帮忙。。我还有分加的

------解决方案--------------------
1. 你的代码有问题:
echo '<p><a href=\"$link\">' . $title . '</a><br />' . $description . '</p>';
由于 $link在单引号内所以不会被解析。所以链接也就是 本页链接$link
至于为什么403无权限就要看你的服务器设置。

2. RSS标准中规定: A channel may contain any number of <item>s.
XML code
<channel>     ...     <item>...</item>     <item>...</item>     <!-- 可能有多个 --></channel>
------解决方案--------------------
探讨

引用:

你怎么修改的。下面这样呢:
echo "<p><a href='$link'>$title</a><br />$description</p>";


这个不行吗??

echo '<p><a href=\"' . $link . '\">' . $title . '</a><br />' . $description . '</p>';

不是说……
  相关解决方案