simplexml加载文件:无法打开流:达到重定向限制


simplexml-load-file : failed to open stream: Redirection limit reached

我试图打开一个XML文件,但遇到了以下错误:

Warning: simplexml_load_file(http://www.bva.fr/fr/rss/sondages.xml) [function.simplexml-load-file]: failed to open stream: Redirection limit reached, aborting in /xxx/import.php on line 93
Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "http://www.bva.fr/fr/rss/sondages.xml" in /xxx/import.php on line 93
Notice: Trying to get property of non-object in /xxx/import.php on line 99
Warning: Invalid argument supplied for foreach() in /xxx/import.php on line 99

第99行是:

foreach($xml->channel->item as $item)

我试过了:

$xml = simplexml_load_file($url);

和:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
$content = curl_exec($curl);
curl_close($curl);
$xml = simplexml_load_string($content);

但它仍然不起作用。。。

以下是XML文件:http://www.bva.fr/fr/rss/sondages.xml

你能帮帮我吗?

您可以尝试添加互补的curl选项:下面是一个完整的例子,谁可以使用这个RSS网站。

$options = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0", // something like Firefox 
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
    CURLOPT_TIMEOUT        => 120,      // timeout on response
    CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
);

在您的示例中将curl_setopt($curl, CURLOPT_URL, $url);替换为此curl_setopt_array( $curl, $options );