これは BASIC AUTH ではなく (たとえば、apache の .htaccess によって保護されている)、代わりにセッション/Cookie ベースのように見えるため、通常のブラウザーが POST 要求を介して行うのと同じ方法で、最初にユーザー名/パスワードを送信する必要があります。成功すると、Web アプリケーションは、次の要求 (つまり、読みたいページを要求する) に使用する必要がある Cookie の名前と値のペアを返します。
サーバーが設定を要求するすべての Cookie のキーと値のペアを使用するか、重要なセッション Cookie を特定することができます。これは、Web アプリケーションの動作に依存します。セッション Cookie の名前と通常の値がどのように見えるかを把握するには、firebug や chrome の開発ツールなどのツールを使用して HTTP リクエストを調べてみてください。重要な Cookie の名前/値が何であるかを把握したら、次のリクエストでページを読み取ろうとするときにそれを送信するようにしてください。
これらすべてを PHP で行う最も簡単な方法は、cURLを使用することです。大まかなアイデアには 2 つの部分があります。
1) ユーザー名/パスワードをフォームの action="" プロセッサに送信し、Cookie 値のペアを返します。curl_init()
、curl_setopt()
、およびを参照curl_exec()
して、リクエストを初期化する方法を確認し、そのオプションを設定します (たとえば、タイプを POST に設定する、処理スクリプトが実際のブラウザにのみ応答する場合にブラウザ エージェント文字列を設定する、リクエストをヘッダーのみのリクエストとして設定するなど)。次に実行します。これを実行して Cookie の値を取得する方法の詳細については、同様の投稿をご覧ください。
2) セッション cookie のキーと値のペアを取得したら、cookie と値のペアを指定してページを読み取り、以前に認証されたことを Web サイトが認識できるようにします。CURLOPT_COOKIE
この 2 番目のリクエストを設定するときにオプションを使用してcurl_setopt()
、cookie=value ペアを指定します。cURL 経由で Cookie を送信する方法の詳細については、こちらの関連記事を参照してください。