web-dev-qa-db-ja.com

PHP基本認証file_get_contents()

WebサイトからのXMLデータを解析する必要があります。 XMLデータは未加工の形式ですが、その前に認証する必要があります(ユーザー名とパスワードを使用した基本的なWebサーバーベースの認証)。

私は試した:

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

しかし、私は次のエラーを受け取ります:

ストリームを開けませんでした:HTTPリクエストが失敗しました! HTTP/1.0 401無許可

PHPは認証に問題があるようです。これを修正する方法はありますか?

11
dehniz

リクエストで追加データを取得するには、ストリームコンテキストを追加する必要があります。次のテストされていないコードのようなものを試してください。これは、PHP file_get_contents()のドキュメンテーション)の例の1つに基づいています。

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