その他CURL関数(Client URL Library)
- cURL関数を使用するには
- curl_close〔cURL セッションを閉じる〕
- curl_copy_handle〔cURL ハンドルを、その設定も含めてコピーする〕
- curl_errno〔直近のエラー番号を返す〕
- curl_error〔現在のセッションに関する直近のエラー文字列を返す〕
- curl_exec〔cURL セッションを実行する〕
- curl_getinfo〔指定した伝送に関する情報を得る〕
- curl_init〔cURL セッションを初期化する〕
- curl_multi_add_handle〔cURL マルチハンドルに、通常の cURL ハンドルを追加する〕
- curl_multi_close〔cURL ハンドルのセットを閉じる〕
- curl_multi_exec〔現在の cURL ハンドルから、サブ接続を実行する〕
- curl_multi_getcontent〔CURLOPT_RETURNTRANSFER が設定されている場合に、cURL ハンドルの内容を返す〕
- curl_multi_info_read〔現在の転送についての情報を表示する〕
- curl_multi_init〔新規 cURL マルチハンドルを返す〕
- curl_multi_remove_handle〔cURL ハンドルのセットからマルチハンドルを削除する〕
- curl_multi_select〔curl_multi 接続のアクティビティを待つ〕
- curl_setopt_array〔CURL 転送用の複数のオプションを設定する〕
- curl_setopt〔cURL 転送用オプションを設定する〕
- curl_version〔cURL のバージョンを返す〕
- Super simple way to work with Twitter API (PHP + CSS)〔簡単にTwitterAPI(PHP+CSS)を使用する方法〕
cURL関数を使用するには
unknown
cURL関数を使用するには「php.ini」ファイルの615行目辺りにある「extension=php_curl.dll」を有効(先頭のセミコロンを削除)にします。
・・・ ; Windows Extensions ; Note that ODBC support is built in, so no dll is needed for it. ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5) ; extension folders as well as the separate PECL DLL download (PHP 5). ; Be sure to appropriately set the extension_dir directive. ;extension=php_bz2.dll extension=php_curl.dll ;extension=php_dba.dll ・・・

curl_close
cURL セッションを閉じる
unknown
cURLセッションを閉じ、すべてのリソースを解放します。 指定したcURLハンドルも削除されます。 戻り値はありません。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
<?
# 新しいcURLセッションを初期化し、Webページを取得
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// URL を取得し、ブラウザに渡す
curl_exec($ch);
// cURLリソースを閉じ、システムリソースを解放
curl_close($ch);
?>
curl_copy_handle
cURL ハンドルを、その設定も含めてコピーする
unknown
指定したcURLハンドルを設定を保持しつつコピーし、新しいcURLハンドルを返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
<?
# cURLハンドルのコピー
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他のオプションを適切に設定
curl_setopt($ch, CURLOPT_URL, 'http://www.yahoo.co.jp/');
curl_setopt($ch, CURLOPT_HEADER, 0);
// ハンドルをコピー
$ch2 = curl_copy_handle($ch);
// URL(http://www.yahoo.co.jp/)を取得し、ブラウザに渡す
curl_exec($ch2);
// cURLリソースを閉じ、システムリソースを開放
curl_close($ch2);
curl_close($ch);
?>
curl_errno
直近のエラー番号を返す
unknown
指定した直近のcURLセッションに関するエラー番号を返します。 エラーが発生しなかった場合は、0を返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
参照:Curl エラーコード
<?
// 存在しない場所へのcURLハンドルを作成
$ch = curl_init('http://404.php.net/');
// 実行
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
// エラーが発生したかどうかを確認
if(curl_errno($ch)){
echo 'Curl error: '.curl_error($ch);
// Curl error: Could not resolve host: 404.php.net; Host not found
}
// ハンドルを閉じる
curl_close($ch);
?>
curl_error
現在のセッションに関する直近のエラー文字列を返す
unknown
直近のcURLセッションに関するエラーメッセージを文字列で返します。 エラーが発生しなかった場合は、~文字列を返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
<?
// 存在しない場所へのcURLハンドルを作成
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
if(curl_exec($ch) === false){
echo 'Curl error: ' . curl_error($ch);
}else{
echo 'Operation completed without any errors';
// Curl error: Could not resolve host: 404.php.net; Host not found
}
// ハンドルを閉じる
curl_close($ch);
?>
curl_exec
cURL セッションを実行する
unknown
指定したcURLセッションを実行します。 この関数はcURLセッションを初期化するため、オプションをすべて設定した後にコールする必要があります。
成功した場合にTRUE、失敗した場合にFALSEを返します。 オプションCURLOPT_RETURNTRANSFERを設定している場合は、成功した場合に取得結果、失敗した場合にFALSEを返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
<?
# 新しいcURLセッションを初期化し、Webページを取得
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// URL を取得し、ブラウザに渡す
curl_exec($ch);
// cURLリソースを閉じ、システムリソースを解放
curl_close($ch);
?>
curl_getinfo
指定した伝送に関する情報を得る
unknown
指定した直近の転送に関する情報を取得します。 オプションの第2引数$定数を指定した場合はその値を文字列で返し、それ以外の場合は連想配列を返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
オプションの第2引数$定数には、下記のいずれかの定数を指定します。
定数 | 説明 |
---|---|
CURLINFO_EFFECTIVE_URL | 直近の有効なURL。 |
CURLINFO_HTTP_CODE | 最後に受け取ったHTTPコード。 |
CURLINFO_FILETIME | ドキュメントを取得するのにかかった時間。取得できなかった場合は-1を返す。 |
CURLINFO_TOTAL_TIME | 直近の伝送にかかった秒数。 |
CURLINFO_NAMELOOKUP_TIME | 名前解決が完了するまでにかかった秒数。 |
CURLINFO_CONNECT_TIME | 接続を確立するまでにかかった秒数。 |
CURLINFO_PRETRANSFER_TIME | 開始からファイル伝送開始までにかかった秒数。 |
CURLINFO_STARTTRANSFER_TIME | 最初のバイトの伝送開始までの秒数。 |
CURLINFO_REDIRECT_TIME | 伝送が始まるまでのリダイレクト処理の秒数。 |
CURLINFO_SIZE_UPLOAD | アップロードされたバイト数。 |
CURLINFO_SIZE_DOWNLOAD | ダウンロードされたバイト数。 |
CURLINFO_SPEED_DOWNLOAD | 平均のダウンロード速度。 |
CURLINFO_SPEED_UPLOAD | 平均のアップロード速度。 |
CURLINFO_HEADER_SIZE | 受信したヘッダのサイズ。 |
CURLINFO_HEADER_OUT | 送信したリクエスト文字列。 |
CURLINFO_REQUEST_SIZE | 発行されたリクエストのサイズ。※現在はHTTPリクエストの場合のみ。 |
CURLINFO_SSL_VERIFYRESULT | CURLOPT_SSL_VERIFYPEERを設定した際に要求されるSSL証明書の認証結果。 |
CURLINFO_CONTENT_LENGTH_DOWNLOAD | ダウンロードされるサイズ。Content-Length:フィールドの内容を取得。 |
CURLINFO_CONTENT_LENGTH_UPLOAD | アップロードされるサイズ。 |
CURLINFO_CONTENT_TYPE | ダウンロードされたオブジェクトのContent-Type: NULLが返された場合は、サーバーが適切なContent-Type:ヘッダを返さなかったことを示す。 |
<?
// cURLハンドルを作成
$ch = curl_init('http://www.yahoo.co.jp/');
// 実行
curl_exec($ch);
// エラーが発生したかどうかを確認
if(!curl_errno($ch)){
$info = curl_getinfo($ch);
echo 'Took '.$info['total_time'].' seconds to send a request to '.$info['url'];
// Took 0.125 seconds to send a request to http://www.yahoo.co.jp/
// 取得した連想配列を展開
print_r($info);
/*
Array
(
[url] => http://www.yahoo.co.jp/
[content_type] => text/html; charset=utf-8
[http_code] => 200
[header_size] => 560
[request_size] => 54
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 0.125
[namelookup_time] => 0
[connect_time] => 0.032
[pretransfer_time] => 0.032
[size_upload] => 0
[size_download] => 26603
[speed_download] => 212824
[speed_upload] => 0
[download_content_length] => -1
[upload_content_length] => -1
[starttransfer_time] => 0.047
[redirect_time] => 0
)
*/
}
// ハンドルを閉る
curl_close($ch);
?>
curl_init
cURL セッションを初期化する
unknown
新規セッションを初期化し、cURLハンドルを返します。 失敗した場合は、FALSEを返します。 返り値のハンドルは、curl_setopt()、curl_exec()、curl_close()で使用します。
オプションの第1引数URLを指定した場合は、オプションCURLOPT_URLがそのパラメータの値に設定されます。 curl_setopt()により、この値を手動で設定することも可能です。
<?
# 新しいcURLセッションを初期化し、Webページを取得
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// URL を取得し、ブラウザに渡す
curl_exec($ch);
// cURLリソースを閉じ、システムリソースを解放
curl_close($ch);
?>
curl_multi_add_handle
cURL マルチハンドルに、通常の cURL ハンドルを追加する
unknown
cURLハンドルをcURLマルチハンドルに追加します。 成功した場合に0を返し、そうでない場合にエラーコードCURLM_*を返します。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。 第2引数$cURLハンドルには、curl_init()の返り値を指定します。
<?
# 2つのcURLハンドルを作成し、それをマルチハンドルに追加して並列実行
// cURLリソースを作成
$ch1 = curl_init();
$ch2 = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch1, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// マルチcURLハンドルを作成
$mh = curl_multi_init();
// 2つのcURLハンドルを追加
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// ハンドルを実行
do {
curl_multi_exec($mh,$running);
} while ($running > 0);
// ハンドルを閉じる
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
curl_multi_close
cURL ハンドルのセットを閉じる
unknown
指定したcURLハンドルのセットを閉じます。 返り値はありません。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。
<?
# 2つのcURLハンドルを作成し、それをマルチハンドルに追加して並列実行
// cURLリソースを作成
$ch1 = curl_init();
$ch2 = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch1, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// マルチcURLハンドルを作成
$mh = curl_multi_init();
// 2つのcURLハンドルを追加
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// ハンドルを実行
do {
curl_multi_exec($mh,$running);
} while ($running > 0);
// ハンドルを閉じる
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
curl_multi_exec
現在の cURL ハンドルから、サブ接続を実行する
unknown
スタック内の各ハンドルを処理します。 このメソッドは、ハンドルがデータの読み書きを要するのかにかかわらずコール可能です。 cURLの定義済みの定数で定義されたcURLコードを返します。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。 第2引数$still_runnningには、処理が実行中かどうかを表すフラグが入ります。
<?
# 2つのcURLハンドルを作成し、それをマルチハンドルに追加して並列実行
// cURLリソースを作成
$ch1 = curl_init();
$ch2 = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch1, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// マルチcURLハンドルを作成
$mh = curl_multi_init();
// 2つのcURLハンドルを追加
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// ハンドルを実行
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// ハンドルを閉じる
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
curl_multi_getcontent
CURLOPT_RETURNTRANSFER が設定されている場合に、cURL ハンドルの内容を返す
unknown
CURLOPT_RETURNTRANSFERに何らかのハンドルが設定されている場合、この関数はそのcURLハンドルの内容を文字列で返します。
第1引数$cURLハンドルには、curl_init()の返り値を指定します。
curl_multi_info_read
現在の転送についての情報を表示する
unknown
指定した$cURLマルチハンドルに対し、個別の転送メッセージや情報が残っているかを問い合わせます。 メッセージには転送時のエラーコードや転送完了情報が残っている可能性があります。
この関数はコールする度に、新しい結果を返します。 取得する結果がない場合は、FALSEを返します。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。
第2引数 $msgs_in_queueには、この関数をコールした後にまだ残っているメッセージの数が入ります。※PHP v5.2.0~。
curl_multi_remove_handle()をコールすると、返り値のリソースにはデータ残りません。
curl_multi_init
新規 cURL マルチハンドルを返す
unknown
複数のcURLハンドルを並列で実行可能にします。 成功した場合にcURLマルチハンドルリソース、失敗した場合にFALSEを返します。
<?
# 2つのcURLハンドルを作成し、それをマルチハンドルに追加して並列実行
// cURLリソースを作成
$ch1 = curl_init();
$ch2 = curl_init();
// URL、その他適切なオプションを設定
curl_setopt($ch1, CURLOPT_URL, "http://www.yahoo.co.jp/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// マルチcURLハンドルを作成
$mh = curl_multi_init();
// 2つのcURLハンドルを追加
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$running=null;
// ハンドルを実行
do {
curl_multi_exec($mh,$running);
} while ($running > 0);
// ハンドルを閉じる
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>
curl_multi_remove_handle
cURL ハンドルのセットからマルチハンドルを削除する
unknown
指定した$cURLハンドルを、$cURLマルチハンドルから削除します。
$cURLハンドル削除後もこのハンドルでcurl_exec()を実行可能です。 使用中のハンドルを削除すると、進行中の転送が停止されます。
成功した場合はcURLハンドルを返し、失敗した場合はFALSEを返します。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。 第2引数$cURLハンドルには、curl_init()の返り値を指定します。
curl_multi_select
curl_multi 接続のアクティビティを待つ
unknown
curl_multi接続に関するアクティビティがあるまでブロックします。
成功した場合に記述子セットに含まれる記述子の数を返します。 selectに失敗した場合は-1を返し、それ以外の場合はselectシステムコールからタイムアウトします。
第1引数$cURLマルチハンドルには、curl_multi_init()の返り値を指定します。 第2引数$タイムアウトには、レスポンスを待つ秒数を指定します。
curl_setopt_array
CURL 転送用の複数のオプションを設定する
unknown
cURL転送用のオプションを一度に複数設定します。 この関数は、何度もcurl_setopt()をコールせずに複数のオプションが設定可能なため、大量のcURLオプションを設定する場合に有用です。
すべてのオプションが正常に設定できた場合にTRUEを返します。 設定に失敗した場合はすぐにFALSEを返し、$オプション配列に含まれるそれ以降のオプションは無視されます。
第1引数$cURLハンドルには、curl_init()が返すcURLハンドルを指定します。
第2引数$オプションには、設定するオプションとその値を指定した配列を指定します。 キーとして使用名農なのは、有効なcurl_setopt()定数、またはその定数に対応する整数値のみ。
<?
# 新規にcURLセッションを初期化しWebページを取得
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他のオプションを適切に設定
$options = array(
CURLOPT_URL => 'http://www.yahoo.co.jp/',
CURLOPT_HEADER => false
);
curl_setopt_array($ch, $options);
// URLの内容を取得してブラウザに渡す
curl_exec($ch);
// cURLリソースを閉じてシステムリソースを開放
curl_close($ch);
?>
curl_setopt
cURL 転送用オプションを設定する
unknown
指定したcURLセッションハンドルにオプションを設定します。
第1引数$cURLハンドルには、curl_init()が返すcURLハンドルを指定します。 第2引数$オプションには、設定したいCURLOPT_*オプションを指定します。
第3引数$値には、optionに設定する値(真偽値、整数値、文字列、コールバック関数の名前)を指定します。 成功した場合にTRUE、失敗した場合にFALSEを返します。
下記のオプションの場合は、値に真偽値を指定します。
オプション | 説明 |
---|---|
CURLOPT_AUTOREFERER | TRUEを指定するとLocation:によるリダイレクトをたどる場合に自動的にReferer:フィールドをリクエストに追加。 |
CURLOPT_BINARYTRANSFER | TRUEを指定すると、CURLOPT_RETURNTRANSFERがオプション指定された場合に出力結果をそのまま加工せずに返す。 |
CURLOPT_COOKIESESSION | TRUEを指定すると、クッキーのセッションを新たに開始。以前のセッションで読み込まれていたセッションクッキー(有効期限が指定されていなくセッション間のみ有効なクッキー)は無視するようlibcurlに指示。デフォルトでは、それがセッションクッキーであるかどうかに関わらず、libcurlはすべてのクッキーを読み込んで保存。 |
CURLOPT_CRLF | TRUEを指定すると、転送時にUnix形式の改行をCRLF形式(\r\n)に変換する。 |
CURLOPT_DNS_USE_GLOBAL_CACHE | TRUEを指定すると、グローバルDNSキャッシュを利用する。このオプションはスレッドセーフではなく、デフォルトで有効になっている。 |
CURLOPT_FAILONERROR | TRUEを指定すると、400以上のHTTPステータスコードが返ってきた場合に処理が失敗したと判断し、なにもしない。デフォルトではHTTPステータスコードの値を無視してページ内容を取得。 |
CURLOPT_FILETIME | TRUEを指定すると、ドキュメントの更新日時を取得。この値を取得する場合は、curl_getinfo()でCURLINFO_FILETIMEオプションを使用。 |
CURLOPT_FOLLOWLOCATION | TRUEを指定すると、サーバーがHTTPヘッダとして送信するLocaion:ヘッダの内容を再帰的にたどる。CURLOPT_MAXREDIRSを指定していない場合は、Locaion:ヘッダの内容をずっとたどり続けるので注意。 |
CURLOPT_FORBID_REUSE | TRUEを指定すると、処理が終了した時に明示的に接続を切断。接続は再利用しない。 |
CURLOPT_FRESH_CONNECT | TRUEを指定すると、キャッシュされている接続を利用しないで、新しい接続を確立する。 |
CURLOPT_FTP_USE_EPRT | TRUEを指定すると、FTPダウンロードにEPRT・LPRTを使用。FALSEを指定すると、EPRT・LPRTを無効にし、PORTを利用する。。 |
CURLOPT_FTP_USE_EPSV | TRUEを指定すると、FTP転送時にEPSVコマンドを利用。失敗した場合はPASVを利用する。FALSEを指定すると、EPSVを無効にする。 |
CURLOPT_FTPAPPEND | TRUEを指定すると、リモートファイルを上書きせずに、追記する。 |
CURLOPT_FTPASCII | TRUEを指定すると、CURLOPT_TRANSFERTEXTのエイリアス(別名)。 |
CURLOPT_FTPLISTONLY | TRUEを指定すると、FTPでディレクトリ名のみ表示する。 |
CURLOPT_HEADER | TRUEを指定すると、ヘッダの内容も出力する。 |
CURLOPT_HTTPGET | TRUEを指定すると、HTTPリクエスト形式をGETに戻す。GETはデフォルト設定のため、リクエスト形式がGETから変更されている場合にのみ有用。 |
CURLOPT_HTTPPROXYTUNNEL | TRUEを指定すると、指定したHTTPプロキシを利用する。 |
CURLOPT_MUTE | TRUEを指定すると、cURL関数に関連する出力を完全に抑える。 |
CURLOPT_NETRC | TRUEを指定すると、リモートサイトと接続を確立する際に用いるユーザー名やパスワードを~/.netrcから取得する。 |
CURLOPT_NOBODY | TRUEを指定すると、出力から本文を削除する。リクエストメソッドはHEADとなる。FALSEを指定してもリクエストメソッドはGETにはならない。 |
CURLOPT_NOPROGRESS | TRUEを指定すると、cURL転送の進捗状況表示を無効にする。デフォルトはTRUE。※このオプションをFALSEにするのはデバック時のみにすべき。 |
CURLOPT_NOSIGNAL | TRUEを指定すると、cURL関数がPHPプロセスに送信するシグナルを無視する。マルチスレッドSAPIではデフォルトでONになっているため、タイムアウトオプションもまだ利用されている。※cURL 7.10~。 |
CURLOPT_POST | TRUEを指定すると、application/x-www-form-urlencoded形式でHTTP POST送信を行う。一般的なフォームデータのエンコード形式と同じ。 |
CURLOPT_PUT | TRUEを指定すると、HTTP PUTを行う。PUT送信するファイルはCURLOPT_INFILEおよびCURLOPT_INFILESIZEで指定されている必要あり。。 |
CURLOPT_RETURNTRANSFER | TRUEを指定すると、curl_exec()の返り値を文字列で返す。通常はデータが直接出力される。 |
CURLOPT_SSL_VERIFYPEER | FALSEを指定すると、cURLはサーバー証明書の検証を行わない。別の証明書をCURLOPT_CAINFOオプションで指定するか、CURLOPT_CAPATHオプションで証明ディレクトリを指定する。CURLOPT_SSL?VERIFYPEERを無効にする場合は、CURLOPT_SSL_VERIFYHOSTも同様に無効にする必要あり(デフォルトは2)。 |
CURLOPT_TRANSFERTEXT | TRUEを指定すると、FTP転送をASCIIモードで行う。LDAPの場合は、データをHTMLではなくプレーンテキストで取得する。※WindowsではSTDOUTにバイナリモードを設定しないこと。 |
CURLOPT_UNRESTRICTED_AUTH | TRUEを指定すると、CURLOPT_FOLLOWLOCATIONを利用して場所をたどっていく時にユーザー名とパスワードを送信し続ける。ホスト名が変更されても続けられる。 |
CURLOPT_UPLOAD | TRUEを指定すると、アップロードの準備を行う。 |
CURLOPT_VERBOSE | TRUEを指定すると、詳細情報を出力する。情報はSTDERRか、CURLOPT_STDERRで指定したファイルに出力される。 |
下記のオプションの場合は、値に整数値を指定します。
オプション | 説明 |
---|---|
CURLOPT_BUFFERSIZE | 1回の読み込みに用いるバッファサイズ。※cURL 7.10~ |
CURLOPT_CLOSEPOLICY | 定数CURLCLOSEPOLICY_LEAST_RECENTLY_USED、CURLCLOSEPOLICY_OLDESTのいずれかを指定。それ以外のCURLCLOSEPOLICY_*定数はcURLでは未サポート。 |
CURLOPT_CONNECTTIMEOUT | 接続の試行を待ち続ける秒数。0を指定すると永遠に待ち続ける。 |
CURLOPT_CONNECTTIMEOUT_MS | 接続の試行を待ち続けるミリ秒数。0を指定すると永遠に待ち続ける。※cURL 7.16.2~。PHP v5.2.3~使用可。 |
CURLOPT_DNS_CACHE_TIMEOUT | DNSエントリをメモリ内に保持し続ける秒数。デフォルトは120秒。 |
CURLOPT_FTPSSLAUTH | 使用可能な場合のFTP認証方法。定数CURLFTPAUTH_SSL(SSLを試す)、CURLFTPAUTH_TLS(TLSを試す)、CURLFTPAUTH_DEFAULT(cURLが決定)のいずれかを指定。※cURL 7.12.2~。 |
CURLOPT_HTTP_VERSION | 定数CURL_HTTP_VERSION_NONE(デフォルト、使用するバージョン番号の決定はcURLに依存)、CURL_HTTP_VERSION_1_0(HTTP/1.0を使用)、CURL_HTTP_VERSION_1_1(HTTP/1.1を使用)のいずれかを指定。 |
CURLOPT_HTTPAUTH | 使用するHTTP認証方法。定数CURLAUTH_BASIC、CURLAUTH_DIGEST、CURLAUTH_GSSNEGOTIATE、CURLAUTH_NTLM、CURLAUTH_ANY、CURLAUTH_ANYSAFEを指定可能。2つ以上の定数を組み合わせて指定するばあいは、ビット演算子「|」(or)を使用。 |
CURLOPT_INFILESIZE | ファイルをリモートサイトにアップロードする時のファイルサイズ。 |
CURLOPT_LOW_SPEED_LIMIT | 転送速度がCURLOPT_LOW_SPEED_LIMITに指定したより遅い期間がCURLOPT_LOW_SPEED_TIMEに指定した秒数以上続いた場合にPHP転送を終了するか、1秒当たりのバイト数で指定。 |
CURLOPT_LOW_SPEED_TIME | 転送速度がCURLOPT_LOW_SPEED_LIMITに指定したより遅い期間がドレ竹続いた場合に転送を異常終了させるかを秒単位で指定。 |
CURLOPT_MAXCONNECTS | 許可される持続的接続の最大数。この値に達した場合は、どの接続を閉じるのかをCURLOPT_CLOSEPOLICYで決定する。 |
CURLOPT_MAXREDIRS | HTTPのリダイレクト先をたどる最大数。CURLOPT_FOLLOWLOCATIONと併用する。 |
CURLOPT_PORT | 接続先のポート番号。 |
CURLOPT_PROTOCOLS | CURLPROTO_*の値のビットマスク。使用すると、転送時にlibcurlがどのプロトコルを使用するのかに制限を加えることができる。様々なプロトコルに対応するようlibcurlをビルトしている場合も、これを使用することで特定の転送プロトコルを使用するよう制限可能。デフォルトでは、libcurlがサポートするすべてのプロトコルの使用を許可。使用可能なプロトコルオプションは、CURLPROTO_HTTP、CURLPROTO_HTTPS、CURLPROTO_FTP、CURLPROTO_FTPS、CURLPROTO_SCP、CURLPROTO_SFTP、CURLPROTO_TELNET、CURLPROTO_LDAP、CURLPROTO_LDAPS、CURLPROTO_DICT、CURLPROTO_FILE、CURLPROTO_TFTP、CURLPROTO_ALL。※cURL 7.19.4~。 |
CURLOPT_PROXYAUTH | プロキシ接続に使用するHTTP認証方法。CURLOPT_HTTPAUTHと同じオプションを指定可能。プロキシ接続でサポートされているのは、現時点においてCURLAUTH_BASICとCURLAUTH_NTLMのみ。 |
CURLOPT_PROXYPORT | プロキシ接続のポート番号。このポート番号は、CURLOPT_PROXYでも指定可能。 |
CURLOPT_PROXYTYPE | 定数CURLPROXY_HTTP(デフォルト)、CURLPROXY_SOCKS5のいずれかを指定。 |
CURLOPT_REDIR_PROTOCOLS | CURLPROTO_*の値いのビットマスク。使用すると、CURLOPT_FOLLOWLOCATIONが有効な場合のリダイレクト時の転送にlibcurlがどのプロトコルを使用するのかに制約を加えることが可能。これによりリダイレクト時に特定の転送プロトコルのみを使用するよう制限をかけられる。デフォルトでは、libcurlがサポートしているすべてのプロトコルのうち、FILEとSCP以外のすべての使用を許可(cURL 7.19.4より前のバージョンでは サポートするすべてのプロトコルを無条件に許可)。プロトコル定数の値は、CURLOPT_PROTOCOLS参照のこと。※cURL 7.19.4~。 |
CURLOPT_RESUME_FROM | 転送を途中から再開する場合のバイトオフセット。 |
CURLOPT_SSL_VERIFYHOST | 1を指定すると、SSLピア証明書に一般名が存在するかどうかを調べる。2を指定すると、それに加え、そのホスト名と一致することを検証。 |
CURLOPT_SSLVERSION | 使用するSSLのバージョン(2または3)。デフォルトでは、PHPが自動判断するが、これを手動で設定する必要があるケースもあり。 |
CURLOPT_TIMECONDITION | CURLOPT_TIMEVALUEの扱いを決定。CURLOPT_TIMEVALUEで指定した時刻以降に変更されたページのみを返す場合は、CURL_TIMECOND_IFMODSINCEを使用。例えば、CURLOPT_HEADERがTRUEの場合にページが変更されていない時は「304 Not Modified」ヘッダが返される。デフォルトはCURL_TIMECOND_IFMODSINCE。 |
CURLOPT_TIMEOUT | cURL関数の実行にかけられる時間の最大値。 |
CURLOPT_TIMEOUT_MS | cURL関数の実行にかけられる時間の最大ミリ秒数。※cURL 7.16.2~。PHP v5.2.3~使用可。 |
CURLOPT_TIMEVALUE | 1970年1月1日からの経過秒数。この値は、CURLOPT_TIMECONDITIONで使用される。デフォルトは、CURL_TIMECOND_IFMODSINCEが適用される。 |
下記のオプションの場合は、値に文字列を指定します。
オプション | 説明 |
---|---|
CURLOPT_CAINFO | 接続先を検証するための証明書を保持するファイル名。CURLOPT_SSL_VERIFYPEERを使用する場合のみ有用。 |
CURLOPT_CAPATH | 複数の証明書ファイルを保持するディレクトリ。CURLOPT_SSL_VERIFYPEERと併用。 |
CURLOPT_COOKIE | HTTPリクエストにおけるSet-Cookie:ヘッダの内容。クッキーが複数ある場合は、セミコロンとスペース区切りで指定(例:"fruit=apple; color:red")。 |
CURLOPT_COOKIEFILE | クッキーのデータを保持するファイル名。クッキーファイルは、NetscapeフォーマットまたはHTTPヘッダを単純にファイルにダンプしたものを使用可能。 |
CURLOPT_COOKIEJAR | 接続終了時にすべての内部クッキーを保存するファイル名。 |
CURLOPT_CUSTOMREQUEST | GTTPリクエストでGETあるいはHEAD以外に使用するカスタムメソッド。DELETEやマイナーなHTTPリクエストを実行する際のみ有用。使用可能な値は、「GET」、「POST」、「CONNECT」など。 |
CURLOPT_EGDSOCKET | CURLOPT_RANDOM_FILEと似ているが、Entropy Gathering Daemonソケットを使用してファイル名を生成する点が異なる。 |
CURLOPT_ENCODING | Accept-Encoding:ヘッダの内容。これによって応答のデコードを可能にする。サポートされるエンコーディングは「identity」、「deflate」、「gzip」。空文字列を指定した場合は、サポートされる円コーディングをすべて含むヘッダが送信される。 |
CURLOPT_FTPPORTFTPPORT | FTPで「POST」を使用するためのIPアドレスを取得する際に使用される値。「POST」は、リモートサーバーに対してこちらが指定したIPアドレスに接続するように指示。この値に設定可能な内容はIPアドレス、ホスト名、ネットワークインタフェース名(Unix)、システムのデフォルトIPアドレス。 |
CURLOPT_INTERFACE | 使用するネットワークインターフェース名。インターフェース名、IPアドレス、ホスト名を指定可能。 |
CURLOPT_KRB4LEVEL | KRB4(Kerberos 4)セキュリティレベル。(セキュリティの低い順に)「clear」、「safe」、「confidential」、「private」のいずれかを指定可能。デフォルトは「private」が適用される。NULLを指定するとKRB4セキュリティを無効にする。現時点においてKRB4セキュリティはFTP転送のみ使用可能。 |
CURLOPT_POSTFIELDS | HTTP POST送信すべてのデータ。ファイルを送信するには、ファイル名の先頭に@を付けてフルパスで指定。URLエンコードされた文字列形式や、フィールド名をキー、データを値とするファイルで渡すことも可能。値が配列の場合、Content-Typeヘッダにはmultipart/form-dataを指定。 |
CURLOPT_PROXY | リクエストを経由させるHTTPプロキシ。 |
CURLOPT_PROXYUSERPWD | プロ棋士に接続するためのユーザー名とパスワード。"[username]:[password]"形式で指定。 |
CURLOPT_RANDOM_FILE | 使用するファイル名をSSLの乱数で生成。 |
CURLOPT_RANGE | 取得するデータの範囲を"X-Y"形式で指定。X、Yのいずれかを省略可能。HTTP転送では、複数範囲指定("X-Y,N-M,..."形式)も指定可能。 |
CURLOPT_REFERER | HTTPリクエストで使用されるReferer:ヘッダの内容。 |
CURLOPT_SSL_CIPHER_LIST | SSLで使用する暗号リスト。 |
CURLOPT_SSLCERT | REMフォーマットの証明書を含むファイル名。 |
CURLOPT_SSLCERTPASSWD | CURLOPT_SSLCERT証明書を使用する際に必要なパスワード。 |
CURLOPT_SSLCERTTYPE | 証明書の形式。対応フォーマットは"PEM"(デフォルト)、"DER"、"ENG"。※cURL 7.9.3~。 |
CURLOPT_SSLENGINE | CURLOPT_SSLKEYで指定したSSL秘密鍵の暗号化エンジンID。 |
CURLOPT_SSLENGINE_DEFAULT | 非対称暗号化で使用する暗号化エンジンID。 |
CURLOPT_SSLKEY | SSL秘密鍵を含むファイル名。 |
CURLOPT_SSLKEYPASSWD | CURLOPT_SSLKEYで指定したSSL秘密鍵を使用するために必要なパスワード。 |
CURLOPT_SSLKEYTYPE | CURLOPT_SSLKEYで指定したSSL秘密鍵の形式。対応フォーマットは、"PEM"(デフォルト)、"DER"、"ENG"。 |
CURLOPT_URL | 取得するURL。curl_init()でセッションを初期化する際にも指定可能。 |
CURLOPT_USERAGENT | HTTPリクエストで使用されるUser-Agent:ヘッダの内容。 |
CURLOPT_USERPWD | 接続に使用するユーザー名とパスワード。"[username]:[password]"形式で指定。 |
下記のオプションの場合は、値に配列を指定します。
オプション | 説明 |
---|---|
CURLOPT_HTTP200ALIASES | エラーではなく正常な応答として扱われるHTTP200レスポンス配列。※cURL 7.10.3~。 |
CURLOPT_HTTPHEADER | 設定するHTTPヘッダフィールドの配列。 |
CURLOPT_POSTQUOTE | FTPリクエスト実行後に、サーバー上で実行するFTPコマンド配列。 |
CURLOPT_QUOTE | FTPリクエストの前にサーバー上で実行するFTPコマンド配列。 |
下記のオプションの場合は、値がストリームリソースであるため次のオプションパラメータを指定します。
オプション | 説明 |
---|---|
CURLOPT_FILE | 転送内容が書き込まれるファイル。デフォルトはSTDOUT。 |
CURLOPT_INFILE | アップロード時に転送内容を読み込むファイル。 |
CURLOPT_STDERR | STDERRの変わりにエラーを出力する場所。 |
CURLOPT_WRITEHEADER | 転送ヘッダ部分が書き込まれるファイル。 |
下記のオプションの場合は、値にコールバック関数の名前を指定します。
オプション | 説明 |
---|---|
CURLOPT_HEADERFUNCTION | コールバック関数名で、この関数は2つの引数(第1引数にはcURLリソース、第2引数には書き込むヘッダデータ文字列を指定)をとり、書き込んだデータのバイト数を返す。※この関数を使用するには、ヘッダデータを書き込む処理をあらかじめ用意する必要があり。 |
CURLOPT_PASSWDFUNCTION | コールバック関数名で、この関数は3つの引数(第1引数にはcURLリソース、第2引数にはパスワードプロンプト文字列、第3引数にはパスワードの最大長を指定)をとり、入力されたパスワードを文字列で返す。 |
CURLOPT_READFUNCTION | コールバック関数名で、この関数は2つの引数(第1引数にはcURLリソース、第2引数には読み込むデータ文字列を指定)をとり、読み込んだデータのバイト数を返す。EOFの場合は0を返す。※この関数を使用するには、データを読み込む処理をあらかじめ用意する必要あり、 |
CURLOPT_WRITEFUNCTION | コールバック関数名で、この関数は2つの引数(第1引数にはcURLリソース、第2引数には書き込むデータ文字列を指定)をとり、書き込んだデータの正確なバイト数を返す。※この関数を使用するには、データを書き込む処理をあらかじめ用意しておく必要あり。 |
<?
# 新規にcURLセッションを初期化しWebページを取得
// 新しいcURLリソースを作成
$ch = curl_init();
// URL、その他のオプションを適切に設定
curl_setopt($ch, CURLOPT_URL, "http://localhost/test/");
curl_setopt($ch, CURLOPT_HEADER, false);
// URLの内容を取得してブラウザに渡す
curl_exec($ch);
// cURLリソースを閉じてシステムリソースを開放
curl_close($ch);
?>
Twitter API - 最新のつぶやきを取得

<?
# Twitter API - 最新のつぶやきを取得
// Twitterログイン情報
$username="ユーザー名";
$password="パスワード";
$ch = curl_init("https://twitter.com/statuses/user_timeline.xml");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_TIMEOUT, 30);
curl_setopt($ch,CURLOPT_USERPWD,$username.":".$password);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
$result=curl_exec ($ch);
$data = strstr($result, '<?');
$xml = new SimpleXMLElement($data);
date_default_timezone_set('Asia/Tokyo');
$created_at=strtotime($xml->status[0]->created_at);
$id=strtotime($xml->status[0]->id);
$profileImageURL=$xml->status[0]->user[0]->profile_image_url;
$text=ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>" , $xml->status[0]->text);
echo "
<p>
<img src='".$profileImageURL."' align='left' style='margin:0 5px 0 0; vertical-align:middle;' />
<a href='http://twitter.com/".$user."'>@".$user."</a>: ".$text."<br>"
.date("Y-m-d H:i:s",$created_at)."
<a href='http://twitter.com/?status=@".$user."%20&in_reply_to_status_id=".$id."&in_reply_to=".$user."'>Reply</a>
<a href='http://twitter.com/".$user."/statuses/".$id."'>View Tweet</a>
</p>";
print_r($xml->status[0]);
/*
SimpleXMLElement Object
(
[created_at] => Fri Jan 01 02:13:19 +0000 2010
[id] => 7255566497
[text] => テレビより 辛口トークの ピーチクかな http://ptic.jp/
[source] => web
[truncated] => false
[in_reply_to_status_id] => SimpleXMLElement Object
(
)
[in_reply_to_user_id] => SimpleXMLElement Object
(
)
[favorited] => false
[in_reply_to_screen_name] => SimpleXMLElement Object
(
)
[user] => SimpleXMLElement Object
(
[id] => 7948862
[name] => cocoism
[screen_name] => cocoism
[location] => Tokyo Japan
[description] => ついに喧噪な渋谷を離れましたw今は青山でWeb系のお仕事してます。デザイナーズレストランははるか昔に卒業済。芋焼酎と焼鳥が大好きで、居心地のいい呑み屋でおやじ談義するのがライフワーク。家では大人しく猛犬チワワのママしてます。[Blogger] http://cocoismtweets.blogspot.com/
[profile_image_url] => http://a1.twimg.com/profile_images/594336924/chuta_normal.png
[url] => http://phpjavascriptroom.com/
[protected] => false
[followers_count] => 154
[profile_background_color] => bb8b5c
[profile_text_color] => 5f412f
[profile_link_color] => 905a39
[profile_sidebar_fill_color] => c69c69
[profile_sidebar_border_color] => c69c69
[friends_count] => 133
[created_at] => Sat Aug 04 05:52:33 +0000 2007
[favourites_count] => 4
[utc_offset] => 32400
[time_zone] => Tokyo
[profile_background_image_url] => http://a1.twimg.com/profile_background_images/24362072/8xu7nk.png
[profile_background_tile] => true
[notifications] => false
[geo_enabled] => false
[verified] => false
[following] => true
[statuses_count] => 799
)
[geo] => SimpleXMLElement Object
(
)
)
*/
?>
Twitter API - お気に入りを取得

<?
$username="ユーザー名";
$password="パスワード";
$url="http://twitter.com/favorites.xml";
$curl=curl_init();
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($curl, CURLOPT_URL, $url);
$result=curl_exec ($curl);
curl_close($curl);
$data=strstr($result, '<?');
$xml=new SimpleXMLElement($data);
date_default_timezone_set('Asia/Tokyo');
for($i=0; $i<5; $i++){
$created_at=strtotime($xml->status[$i]->created_at);
$id=$xml->status[$i]->id;
$name=$xml->status[$i]->user[0]->name;
$screen_name=$xml->status[$i]->user[0]->screen_name;
$profileImageURL=$xml->status[$i]->user[0]->profile_image_url;
$source=$xml->status[$i]->source;
$text=ereg_replace("(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)", "<a href=\"\\1\\2\" target=\"_blank\">\\1\\2</a>" , $xml->status[$i]->text);
$text=str_replace("<br>","",$text);
$s.="
<dt><img src='".$profileImageURL."' ></dt>
<dd>
<a href='http://twitter.com/".$screen_name."'>@".$screen_name."</a>: ".$text."<br>".
date("Y-m-d H:i:s",$created_at)."
<a href='http://twitter.com/?status=@".$screen_name."%20&in_reply_to_status_id=".$id."&in_reply_to=".$screen_name."'>status</a>
</dd>";
}
echo "<h2>最近のお気に入り5件</h2><div id='demo'><dl>".$s."</dl></div>";
print_r($xml->status[0]);
/*
SimpleXMLElement Object
(
[created_at] => Fri Jan 22 13:28:46 +0000 2010
[id] => 8069058955
[text] => あああ、私が姉夫婦の家に手土産で持って帰ってドン引きされたミドリムシクッキーのレポートもある!普通のクッキーなのに、パッケージも可愛いのに~。http://bit.ly/4yw50Y
[source] => <a href="http://d.hatena.ne.jp/Kiri_Feather/20071121" rel="nofollow">Tween</a>
[truncated] => false
[in_reply_to_status_id] => SimpleXMLElement Object
(
)
[in_reply_to_user_id] => SimpleXMLElement Object
(
)
[favorited] => true
[in_reply_to_screen_name] => SimpleXMLElement Object
(
)
[user] => SimpleXMLElement Object
(
[id] => 89407996
[name] => やまもとさをん
[screen_name] => sawonya
[location] => 川崎市某区 or 神田錦町
[description] => イラストとマインドマップを描くこと・使うことが大好き!第1回マインドマップコンテスト大賞受賞しました。マインドマップやイラストを描くお仕事したり。イラスト多めのマインドマップをブログで公開。フォトリーディングはご無沙汰中?故郷は兵庫の西播です♪1日のつぶやき多めです。
[profile_image_url] => http://a3.twimg.com/profile_images/646845375/prof_normal.gif
[url] => http://milk200ml.blog73.fc2.com/
[protected] => false
[followers_count] => 1217
[profile_background_color] => e82326
[profile_text_color] => 3b3b3b
[profile_link_color] => e31c1c
[profile_sidebar_fill_color] => e3ddb3
[profile_sidebar_border_color] => ffffff
[friends_count] => 1195
[created_at] => Thu Nov 12 09:06:04 +0000 2009
[favourites_count] => 34
[utc_offset] => 32400
[time_zone] => Tokyo
[profile_background_image_url] => http://a3.twimg.com/profile_background_images/54236125/t.png
[profile_background_tile] => false
[notifications] => false
[geo_enabled] => false
[verified] => false
[following] => true
[statuses_count] => 5788
[lang] => ja
[contributors_enabled] => false
)
[geo] => SimpleXMLElement Object
(
)
[contributors] => SimpleXMLElement Object
(
)
)
*/
?>
<style type="text/css">
#demo dl {
margin:0; padding:0;
border-bottom:1px dotted #ccc;
width:500px;
}
#demo dt {
float:left;
width:48px; height:48px;
margin:0 0 5px 0; padding:5px;
clear:left;
border-top:1px dotted #ccc;
}
#demo dd {
border-top:1px dotted #ccc;
margin:0 0 5px 48px; padding:5px 5px 5px 10px;
}
</style>
curl_version
cURL のバージョンを返す
unknown
cURLのバージョン情報を連想配列で返します。
インデックス | 説明 |
---|---|
version_number | cURLの24ビットのバージョン番号 |
version | cURLのバージョン番号を表す文字列 |
ssl_version_number | OpenSSL の 24 ビットのバージョン番号 |
ssl_version | OpenSSL バージョン番号を表す文字列 |
libz_version | zlib バージョンを表す文字列 |
host | cURL をビルドしたホストについての情報 |
age | 参照。現在バージョン番号(定数CURLVERSION_NOW)が入ります。 |
features | 定数CURL_VERSION_*のビットマスク |
protocols | cURL がサポートするプロトコル名の配列 |
<?
// cURLのバージョン配列を取得
$version = curl_version();
print_r($version);
/*
Array
(
[version_number] => 463620
[age] => 3
[features] => 540
[ssl_version_number] => 0
[version] => 7.19.4
[host] => i386-pc-win32
[ssl_version] => OpenSSL/0.9.8k
[libz_version] => 1.2.3
[protocols] => Array
(
[0] => tftp
[1] => ftp
[2] => telnet
[3] => dict
[4] => ldap
[5] => http
[6] => file
[7] => https
[8] => ftps
)
)
*/
// ビットフィールドを使用してcURLの機能を調べる
$bitfields = Array(
'CURL_VERSION_IPV6',
'CURL_VERSION_KERBEROS4',
'CURL_VERSION_SSL',
'CURL_VERSION_LIBZ'
);
foreach($bitfields as $feature){
echo $feature . ($version['features'] & constant($feature) ? ' 一致' : ' 不一致');
echo PHP_EOL;
}
/*
CURL_VERSION_IPV6 不一致
CURL_VERSION_KERBEROS4 不一致
CURL_VERSION_SSL 一致
CURL_VERSION_LIBZ 一致
*/
?>
Super simple way to work with Twitter API (PHP + CSS)
簡単にTwitterAPI(PHP+CSS)を使用する方法
unknown