Я пытаюсь получить RSS-канал от Сайт Sotheby’s работая на моем сайте, используя стандартную функцию чтения PHP, которая использует simplexml_load_file и цикл, но он не работает должным образом. Когда я подключаю этот код, я получаю сообщение «Не удалось загрузить тег XML Start»<«не найдена» ошибка.
<?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);
?>
Я пытался использовать локон от эта публикация но он просто печатает пустой предварительный тег.
Вот читательский код 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 новости RSS канал Я пытался вытащить из.
Любая помощь или предложения будут очень полезны. Спасибо!
РЕДАКТИРОВАТЬ
Спасибо Четвертая птица за ссылку на это Вопрос стека, он работал прошлой ночью, но когда я проверяю сегодня, он перестал работать …
<?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:
[18-Dec-2015 07:46:41 Америка / New_York] Предупреждение PHP: simplexml_load_string (): </ html> в (* корневая папка моего сайта) [18-Dec-2015 07:46:41 America / New_York] Предупреждение PHP: simplexml_load_string (): ^ in (* корневая папка моего сайта) [18-Dec-2015 07:46:41 Америка / New_York] PHP Предупреждение: simplexml_load_string (): сущность: строка 85: ошибка синтаксического анализатора: преждевременный конец данных в теге html строка 2 в (* корневая папка моего сайта)И они в основном повторяются.
В первом предоставленном вами блоке кода вы используете simplexml_load_string.
Руководство описывает первый параметр как:
Правильно сформированная строка XML
В вашем коде вы передаете URL. Если вы хотите использовать simplexml_load_string
, ответ на этот вопрос может помочь вам:
Использование SimpleXML для загрузки удаленного URL
Во втором предоставленном вами блоке кода вы используете simplexml_load_file
Руководство описывает первый параметр как:
Путь к файлу XML
Если я попробую код во втором блоке кода, он показывает мне данные из RSS Feed, он только дает мне следующее уведомление PHP:
Примечание PHP: неопределенная переменная: i
Это была последняя часть URL, которая вызывала его разрыв при разборе данных XML. Когда я снял&sh_auth = 1184301877% 2E0% 2E0% 2E42356% 2E14434fd9e3fcb0c832c884fe9ff36e31 ‘из URL-адреса исходного блока кода, который я разместил с помощью simplexml_load_file (), работал отлично и с тех пор не сломался. Спасибо за помощь Четвертая птица!