1

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

手伝っていただけませんか ?

4

1 に答える 1

1

補完的な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 );ください。

于 2013-02-18T19:10:46.137 に答える