XML Feed - 有效的HTTP标头用户代理?

时间:2013-02-13 01:19:15

标签: php http-headers

我正在尝试使用下面的脚本加载外部Feed,但生成的文件始终为空。提供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提要,因此不应该是问题。非常感谢提前。

1 个答案:

答案 0 :(得分: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);
?>