我需要从网站解析一些XML数据。 XML数据采用原始格式,但在我需要验证之前(基于网络服务器的基本身份验证,使用用户名和密码)。
我试过了:
$homepage = file_get_contents('http://user:password@IP:PORT/folder/file');
但是我收到以下错误:
无法打开流:HTTP请求失败! HTTP / 1.0 401未经授权
PHP似乎在验证方面存在问题。知道如何解决这个问题吗?
答案 0 :(得分:23)
您需要添加流上下文以获取请求中的额外数据。尝试类似以下未经测试的代码。它基于file_get_contents()
的PHP文档中的一个示例:
$auth = base64_encode("username:password");
$context = stream_context_create([
"http" => [
"header" => "Authorization: Basic $auth"
]
]);
$homepage = file_get_contents("http://example.com/file", false, $context );