サイトへのログイン認証などHTTPアクセスを行うライブラリではHTTP2_requestが有名かと思いますが、すでに開発がとまっていることもあり、最近はguzzleというライブラリが使われているようです。
たとえばあるサイトにログインをして、そのサイトの内部にアクセスするようなケースを考えてみましょう。
Contents
公式サイト
http://docs.guzzlephp.org/en/stable/#
インストール
composerからインストールできます。
1 2 3 |
"require":{ "guzzlehttp/guzzle": "~6.0", }, |
ソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
use GuzzleHttp\Client; #これがないとログイン状態を引き継げないようです。 $jar = new \GuzzleHttp\Cookie\CookieJar(); $client = new Client([ 'base_uri' => 'ここにURL', 'timeout' => '3.0', 'debug' => true, 'cookies' => $jar ]); #実際にログインをする場合 $response = $client->request('POST', 'ここにログインURL', [ 'form_params' => [ /** 実際に引き渡すPOSTデータをここで定義 ブラウザのHTTPリクエストのログなどをみるべし **/ ] ]); #ログインした後、内部ページにアクセス $response = $client->request('GET', 'ここにアクセスしたいページのURL' ); #htmlデータがとりたい場合はここでとれます。 echo $response->getBody(); |