Парсер RSS и DOMDocument :: загрузить - PullRequest
1 голос
/ 24 июня 2011

У меня небольшая проблема со сценарием, который читает файл XML и печатает вывод:

<?php

  $doc = new DOMDocument();
  $doc->load("http://www.tripadvisor.it/Feeds-d235955-treviews.xml");
  foreach ($doc->getElementsByTagName('item') as $node) {
      echo $node->getElementsByTagName('title')->item(0)->nodeValue;
      echo $node->getElementsByTagName('description')->item(0)->nodeValue;
      echo $node->getElementsByTagName('link')->item(0)->nodeValue;
      echo $node->getElementsByTagName('pubDate')->item(0)->nodeValue;
  }

?> 

Если вы используете этот скрипт на моем личном домене (хостинг), он работает нормально, но если я использую на моем VPS не работает и возвращает эти ошибки:

Warning: DOMDocument::load(http://www.tripadvisor.it/Feeds-d235955-treviews.xml) [domdocument.load]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/AAA/public_html/test.php on line 4
Warning: DOMDocument::load() [domdocument.load]: I/O warning : failed to load external entity "http://www.tripadvisor.it/Feeds-d235955-treviews.xml" in /home/AAA/public_html/test.php on line 4

Какие настройки PHP или APACHE могут вызвать проблемы?

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Поскольку file_get_contents не работает на вашем сервере, поэтому попробуйте использовать curl для соединения с сервером tripadvisor, как показано ниже

<?php
$init = curl_init();
curl_setopt($init, CURLOPT_URL,'http://www.tripadvisor.it/Feeds-d235955-treviews.xml');
curl_setopt($init, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($init);
curl_close ($init);
$xml = simplexml_load_string($contents);
print"<pre>";
print_r($xml);
?>
1 голос
/ 24 июня 2011

Попробуйте регулярное выражение, чтобы получить теги xml в php.Получите XML с php curl, затем используйте регулярное выражение.Попробуйте по следующей ссылке http://www.bobulous.org.uk/coding/php-xml-regex.html

...