ユーザ用ツール

サイト用ツール


11_php:03_function:09_curl

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
11_php:03_function:09_curl [2015/04/28 03:59] matsui11_php:03_function:09_curl [2020/04/19 11:25] (現在) matsui
行 1: 行 1:
 +====== 09 curl ======
  
 +<code php>
 +$conn = curl_init();
 +curl_setopt($conn, CURLOPT_URL, $url);
 +curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, FALSE);
 +curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, FALSE);
 +curl_setopt($conn, CURLOPT_RETURNTRANSFER, TRUE);
 +curl_setopt($conn, CURLOPT_TIMEOUT, 5);
 +curl_setopt($conn, CURLOPT_HEADER, FALSE);
 +$ret = curl_exec($conn);
 +curl_close($conn);
 +
 +$result = json_decode($ret, true);
 +return $result;
 +</code>
 +
 +=== Basic認証の場合 ===
 +
 +<code php>
 +curl_setopt($conn, CURLOPT_USERPWD, "User:Password");
 +</code>
 +
 +=== cookieを利用する場合 ===
 +
 +<code>
 +$cookie=tempnam(sys_get_temp_dir(),'cookie_');
 +$conn = curl_init();
 +curl_setopt($conn, CURLOPT_COOKIEJAR,$cookie);
 +curl_setopt($conn, CURLOPT_URL, $url);
 +curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, FALSE);
 +curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, FALSE);
 +curl_setopt($conn, CURLOPT_RETURNTRANSFER, TRUE);
 +curl_setopt($conn, CURLOPT_TIMEOUT, 5);
 +curl_setopt($conn, CURLOPT_HEADER, FALSE);
 +$ret = curl_exec($conn);
 +curl_close($conn);
 +unlink($cookie);
 +
 +$result = json_decode($ret, true);
 +return $result;
 +</code>
 +
 +== POST ==
 +
 +<code>
 +$PASSWORD = 'hogehoge';
 +$USERNAME = 'hoge';
 +
 +$POST_DATA = array(
 +    'foo' => 'bar'
 +);
 +
 +$conn = curl_init();
 +curl_setopt($conn, CURLOPT_URL, $url);
 +curl_setopt($conn, CURLOPT_POST, TRUE);
 +curl_setopt($conn, CURLOPT_POSTFIELDS, http_build_query($POST_DATA));
 +curl_setopt($conn, CURLOPT_SSL_VERIFYPEER, FALSE);
 +curl_setopt($conn, CURLOPT_SSL_VERIFYHOST, FALSE);
 +curl_setopt($conn, CURLOPT_RETURNTRANSFER, TRUE);
 +curl_setopt($conn, CURLOPT_TIMEOUT, 5);
 +curl_setopt($conn, CURLOPT_HEADER, FALSE);
 +curl_setopt($conn, CURLOPT_USERPWD, $USERNAME . ":" . $PASSWORD);
 +$ret = curl_exec($conn);
 +curl_close($conn);
 +</code>
 +
 +
 +==== エラーの確認 ===
 +
 +  curl_error($conn);
 +
 +==== curl Timeout ====
 +
 +
 +CURLOPT_TIMEOUT/CURLOPT_CONNECTTIMEOUTでオーバーライドしない限り、CURLはdefault_socket_timeoutに従います。
 +
 +  $socket_timeout = ini_get('default_socket_timeout'); // timeout in seconds
 +
 +{{tag>curl}}