2月 132016
PHP cURLの色々な使い方を参考にcURLで接続をこころみたものの、すぐつまづいて、ドはまりしたので、メモ。
以下の部分、file_get_contents()なら取得できるのに、cURLで取得できない。
$url = "http://www.pixiv.net/login.php"; $ch = curl_init(); // はじめ //オプション curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); var_dump($html); curl_close($ch); //終了
このURLがリダイレクトされるので、リダイレクト後のアドレスに変えてみる。
https://www.secure.pixiv.net/login.php?return_to=0
エラーをはきださせる。
curl_errnoなどを使って、直前のcurl_exec()のエラーを出力。
if($errno = curl_errno($ch)) { $error_message = curl_strerror($errno); echo "cURL error ({$errno}):\n {$error_message}"; }
curl: (60) Peer certificate cannot be authenticated with known CA certificates
サーバー証明書の検証がうまくいっていないために、データが取得できないようだ。
cURL はサーバー証明書の検証を行わないように設定
setoptに、以下のように設定。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
これでhttpsのデータも取得できるようになった。
よく読まれている記事
- 応用情報技術者試験の午後対策
- シェルスクリプト内でexpectを使ってSFTP接続
- モジュール強度のわかりやすい図 モジュール結束性 独立性
- ゴール指向要求分析 アイアスター kaos法
- 平成24年春期 午前問22 解き方メモ
この記事を読んだ人は次の記事も読んでいます:
- シリアライズ可能なcURLのラッパークラスをつかってみた
- php 関数 引数の省略
- php5.3 pearインストールできない
- vistaでIE6を使う
- Weblioポップアップ英和辞典 翻訳されない場合
- OSS(Open Source Software)の特徴のうち,適切なものはどれか。ただし, OSSはOSI(Open Source lnitiative)によるOSD(The Open Source Definition)の定義に基づくものとする。
- windows7 リモートデスクトップ設定画面がない