cURLを利用する

PHPでのcURLを使った通信

PHP

// cURL リソース作成 $ch = curl_init(); // オプション設定 // URL指定 $url = 'http://example.com/'; curl_setopt($ch, CURLOPT_URL, $url); /* // 名前解決(Could not resolve host対応) $domain = 'example.com'; $ip = gethostbyname($domain); if (!empty($ip) && $ip !== $domain) { $port = '443'; // example.com:80:127.0.0.1 curl_setopt($ch, CURLOPT_RESOLVE, [$domain . ':' . $port . ':' . $ip]); curl_setopt($ch, CURLOPT_PORT, $port); } // パラメタ設定 curl_setopt($ch, CURLOPT_POST, true); $data['foo'] = 'apple'; $data['bar'] = 'banana'; curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // ヘッダ設定 $headers = [ 'Content-type: application/x-www-form-urlencoded' ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // UA設定 $ua = 'CCBot/2.0 (https://commoncrawl.org/faq/)'; curl_setopt($ch, CURLOPT_USERAGENT, $ua); // リファラ設定 $referer = 'http://example.jp/'; curl_setopt($ch, CURLOPT_REFERER, $referer); // リダイレクトをたどる(指定したURLがリダイレクトしていた際にたどるか?) curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Basic認証 $user = 'xxxxxxxx'; $pw = 'xxxxxxxx'; curl_setopt($ch, CURLOPT_USERPWD, $user . ":" . $pw); // ヘッダを出力 curl_setopt($ch, CURLOPT_HEADER, true); */ // 結果を画面出力しない curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // HTTPS証明書対策、サーバー証明書の検証を行わない curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // タイムアウト(接続の試行を待ち続けるミリ秒数(デフォルト無期限) 30秒) curl_setopt($ch, CURLOPT_TIMEOUT_MS, 30000); /* // 情報出力 curl_setopt($ch, CURLOPT_VERBOSE, true); // 出力先指定 $fp = fopen('/path/to/curl.log', 'w'); curl_setopt($ch, CURLOPT_STDERR, $fp); */ // 実行 $result = curl_exec($ch); // エラー if (curl_errno($ch) > 0) { // エラー番号 echo curl_errno($ch); // エラーメッセージ echo curl_error($ch); } $info = curl_getinfo($ch); // HTTPコード echo $info['http_code']; // echo curl_getinfo($ch, CURLINFO_HTTP_CODE); // システムリソース解放 curl_close($ch); echo $result;

セッションIDが必須となる情報の取得

PHP

// PHPSESSIDを渡す $phpsessid = session_name() . '=' . $_COOKIE[session_name()]; $headers = [ 'Cookie: ' . $phpsessid ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_COOKIE, $phpsessid); session_write_close();

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について