PHP 基本身份验证file_get_contents()

2022-08-30 21:27:50

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

我试过了:

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

但是我得到以下错误:

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

PHP似乎在身份验证方面存在问题。任何想法如何解决这个问题?


答案 1

您需要添加流上下文才能获取请求中的额外数据。请尝试类似于以下未经测试的代码。它基于 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 );

答案 2

推荐