我正在尝试使用下面的脚本加载外部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提要,因此不应该是问题。非常感谢提前。
答案 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);
?>