1

以下のスクリプトを使用して外部フィードを読み込もうとしていますが、生成されるファイルは常に空です。XML を提供するサービスはサポートを提供しませんが、「有効な HTTP ヘッダー ユーザー エージェント」を送信する必要があると主張し、有効な HTTP ヘッダー ユーザー エージェントがどうあるべきかを説明していません。

<?php
$feed = "[FEEDURL]"; //Hey Stackoverflow, I removed the URL on purpose
$content = file_get_contents($feed);
$dir = dirname($_SERVER['SCRIPT_FILENAME']);
$fp = fopen($dir.'/feedcopy.txt', 'w');
fwrite($fp, $content);
fclose($fp);
?>

手がかりを得た人はいますか?このスクリプトは他の XML フィードで動作するため、問題にはなりません。よろしくお願いします。

4

1 に答える 1

1

次のように、stream_context_create() で有効なコンテキスト リソースを使用する必要があります。

<?php
$feed = "[FEEDURL]"; //Hey Stackoverflow, I removed the URL on purpose

$options = array(
  'http' => array(
    'method' => "GET",
    'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17\r\n" // Chrome v24
  )
);
$context = stream_context_create($options);

$content = file_get_contents($feed, false, $context);

$dir = dirname($_SERVER['SCRIPT_FILENAME']);
$fp = fopen($dir.'/feedcopy.txt', 'w');
fwrite($fp, $content);
fclose($fp);
?>
于 2013-02-14T19:12:24.110 に答える