====== 09 curl ======
$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;
=== Basic認証の場合 ===
curl_setopt($conn, CURLOPT_USERPWD, "User:Password");
=== cookieを利用する場合 ===
$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;
== POST ==
$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);
==== エラーの確認 ===
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}}