我已经简单地抓住后面的HTTP基本身份验证和URL下面的PHP代码重新成为它:额外的内容
<?PHP
header("Content-Type: text/xml");
$username = "username";
$password = "password";
$url = "http://s6.voscast.com:7158/admin.cgi?mode=viewxml";
$context = stream_context_create(array(
'http' => array (
'method' => "GET",
'header' => "Authorization: Basic ".base64_encode($username.":".$password)."\r\n".
"User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/14.0.835.202 Chrome/14.0.835.202 Safari/535.1"
)
));
print file_get_contents($url, false, $context);
?>
这工作没有任何问题,在本地对我的Linux Mint的11机(诉5.3.5),但其运行5.2.14客户端的另一台Linux服务器上失败:
好像它试图验证XML,这是完全不必要的。有没有一种方法可以禁用此功能或进一步调查哪些问题出在哪里?
当我看着响应的来源,我看到以下内容:
未能打开流:连接在/家庭/ livshin /的public_html /可湿性粉剂内容/上传/ _radio/songinfo拒绝在线.PHP
它的正常工作本地,但在网上失败?我怎样才能进一步调试呢?
您是否在浏览器中查看了页面的源代码,以查看还有哪些内容正在追加?无论哪种方式,除非您实际输出有效的xml,否则您将无法禁用该错误。 –
编辑我的问题,并在响应中发生错误。看起来'file_get_contents'出于某种原因在线失败。在线服务器和我的本地计算机有什么区别? –
如果您向浏览器发送内容并将其声明为XML,则会尝试将其作为XML处理。您应该确保发送有效的XML,让浏览器使用“text/plain”MIME类型将其显示为文本,或让浏览器使用“Content-Disposition”下载文件。 – millimoose