RSS 源 - 加载失败 XML 需要开始标记,未找到“<”
RSS Feed - Failed loading XML Start tag expected, '<' not found
我正在尝试使用标准 PHP reader 函数从 Sotheby's website 在我的网站上获取 RSS 提要,该函数使用 simplexml_load_file 和一个循环,但它不能正常工作。当我插入此代码时,出现 'Failed loading XML Start tag expected, '<'未找到' 错误。'
<?php
$url = 'http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31';
libxml_use_internal_errors(true);
$sxe = simplexml_load_string($url);
if ($sxe === false) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
print_r($rss);
?>
我试过使用 this posting 中的 curl,但它只打印一个空的预标记。
这是我使用的 reader PHP 代码...
<?php
$url = "http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31";
$rss = simplexml_load_file($url);
if($rss)
{
$items = $rss->channel->item;
foreach($items as $item)
{
if($i==5) break;
$title = $item->title;
$link = $item->link;
$published_on = $item->pubDate;
$description = $item->description;?>
<hr>
<div class="news-story">
<?php
echo '<h3><a href="'.$link.'">'.$title.'</a></h3>';
echo '<span class="news-date">('.$published_on.')</span>';
?>
</div>
<?php
$i++;
}
}
?>
这是我试图从中提取的 Sotheby's news RSS feed。
任何帮助或建议都会非常有帮助。谢谢!
编辑
感谢小四指点这个Stack question,昨晚还可以,今天一查就不行了...
<?php
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31';
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
print_r($xml);
?>
这些是我在 MAMP 中遇到的一些错误 php_error.log:
[2015 年 12 月 18 日 07:46:41 America/New_York] PHP 警告:simplexml_load_string():
我正在尝试使用标准 PHP reader 函数从 Sotheby's website 在我的网站上获取 RSS 提要,该函数使用 simplexml_load_file 和一个循环,但它不能正常工作。当我插入此代码时,出现 'Failed loading XML Start tag expected, '<'未找到' 错误。'
<?php
$url = 'http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31';
libxml_use_internal_errors(true);
$sxe = simplexml_load_string($url);
if ($sxe === false) {
echo "Failed loading XML\n";
foreach(libxml_get_errors() as $error) {
echo "\t", $error->message;
}
}
print_r($rss);
?>
我试过使用 this posting 中的 curl,但它只打印一个空的预标记。
这是我使用的 reader PHP 代码...
<?php
$url = "http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31";
$rss = simplexml_load_file($url);
if($rss)
{
$items = $rss->channel->item;
foreach($items as $item)
{
if($i==5) break;
$title = $item->title;
$link = $item->link;
$published_on = $item->pubDate;
$description = $item->description;?>
<hr>
<div class="news-story">
<?php
echo '<h3><a href="'.$link.'">'.$title.'</a></h3>';
echo '<span class="news-date">('.$published_on.')</span>';
?>
</div>
<?php
$i++;
}
}
?>
这是我试图从中提取的 Sotheby's news RSS feed。
任何帮助或建议都会非常有帮助。谢谢!
编辑
感谢小四指点这个Stack question,昨晚还可以,今天一查就不行了...
<?php
$context = stream_context_create(array('http' => array('header' => 'Accept: application/xml')));
$url = 'http://apps.shareholder.com/rss/rss.aspx?channels=2908&companyid=BID&sh_auth=1184301877%2E0%2E0%2E42356%2E14434fd9e3fcb0c832c884fe9ff36e31';
$xml = file_get_contents($url, false, $context);
$xml = simplexml_load_string($xml);
print_r($xml);
?>
这些是我在 MAMP 中遇到的一些错误 php_error.log:
[2015 年 12 月 18 日 07:46:41 America/New_York] PHP 警告:simplexml_load_string():