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 回答