PHP基本身份验证file_get_contents()

25

我需要解析网站上的一些XML数据。XML数据是原始格式,但在此之前我需要进行验证(基于用户名和密码的基本Web服务器验证)。

我尝试过:

$homepage = file_get_contents('http://user:password@IP:PORT/folder/file');

但我得到了以下的错误:

无法打开流:HTTP请求失败!HTTP/1.0 401 未经授权

PHP似乎在身份验证方面存在问题。有什么想法可以解决这个问题吗?

1个回答

79

您需要添加一个流上下文以获取请求中的额外数据。尝试类似以下未经测试的代码。它基于 PHP 文档中 file_get_contents() 的一个示例:

$auth = base64_encode("username:password");
$context = stream_context_create([
    "http" => [
        "header" => "Authorization: Basic $auth"
    ]
]);
$homepage = file_get_contents("http://example.com/file", false, $context );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接