XIICURL, Client URL Library 関数

導入

PHP は、Daniel Stenbergにより開発されたライブラリlibcurl をサポー トします。このライブラリにより、多くの異なったプロトコルで様々なサー バーと接続し、通信することが可能になります。libcurl は現在 http, https, ftp, gopher, telnet, dict, file, ldap プロトコルをサ ポートしてします。libcurl は HTTPS 認証、HTTP POST、HTTP PUT、FTP アップロード(これはPHPのftp拡張機能でも実行可能です)、HTTPフォーム によるアップロード、プロキシ、クッキー、ユーザ名+パスワードによる 認証もサポートします。

これらの関数は、PHP 4.0.2で追加されました。

要件

CURL関数を使用するためには、 CURL パッケージをインストールしておく必要があります。PHPは、 CURL 7.0.2-beta 以降を必要とします。7.0.2-beta以前のバージョンで は動作しません。PHP バージョン4.2.3以降、少なくともCURLバージョン 7.9.0以降が必要となっています。

インストール手順

PHPのCURLサポート機能を使用するには、 --with-curl[=DIR] を付けてPHPをコンパイル しておく必要があります。ただし、DIRは、ディレクトリlibおよび includeを有するディレクトリの場所となります。 ディレクトリ"include"には、"curl"という名前のフォルダーがある必要 があり、そのフォルダには、ファイルeash.hおよびcurl.hがある必要があ ります。"libcurl.a"という名前のファイルがディレクトリ"lib"にある必 要があります。PHP 4.3.0以降、urlストリームでCURLを使用するようPHPを 設定するために --with-curlwrappers を指定できます。

Win32ユーザへの注意 このモジュールをWindows環境で使用可能とするには、PHP/Win32バイナリ パッケージのDLLフォルダにある libeay32.dll および ssleay32.dll を使用するWindowsマシンのSYSTEM32 フォルダ(例: C:\WINNT\SYSTEM32 または C:\WINDOWS\SYSTEM32)にコピー する必要があります。

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

CURLOPT_PORT ( integer )

CURLOPT_FILE ( integer )

CURLOPT_INFILE ( integer )

CURLOPT_INFILESIZE ( integer )

CURLOPT_URL ( integer )

CURLOPT_PROXY ( integer )

CURLOPT_VERBOSE ( integer )

CURLOPT_HEADER ( integer )

CURLOPT_HTTPHEADER ( integer )

CURLOPT_NOPROGRESS ( integer )

CURLOPT_NOBODY ( integer )

CURLOPT_FAILONERROR ( integer )

CURLOPT_UPLOAD ( integer )

CURLOPT_POST ( integer )

CURLOPT_FTPLISTONLY ( integer )

CURLOPT_FTPAPPEND ( integer )

CURLOPT_NETRC ( integer )

CURLOPT_FOLLOWLOCATION ( integer )

CURLOPT_FTPASCII ( integer )

CURLOPT_PUT ( integer )

CURLOPT_MUTE ( integer )

CURLOPT_USERPWD ( integer )

CURLOPT_PROXYUSERPWD ( integer )

CURLOPT_RANGE ( integer )

CURLOPT_TIMEOUT ( integer )

CURLOPT_POSTFIELDS ( integer )

CURLOPT_REFERER ( integer )

CURLOPT_USERAGENT ( integer )

CURLOPT_FTPPORT ( integer )

CURLOPT_LOW_SPEED_LIMIT ( integer )

CURLOPT_LOW_SPEED_TIME ( integer )

CURLOPT_RESUME_FROM ( integer )

CURLOPT_COOKIE ( integer )

CURLOPT_SSLCERT ( integer )

CURLOPT_SSLCERTPASSWD ( integer )

CURLOPT_WRITEHEADER ( integer )

CURLOPT_SSL_VERIFYHOST ( integer )

CURLOPT_COOKIEFILE ( integer )

CURLOPT_SSLVERSION ( integer )

CURLOPT_TIMECONDITION ( integer )

CURLOPT_TIMEVALUE ( integer )

CURLOPT_CUSTOMREQUEST ( integer )

CURLOPT_STDERR ( integer )

CURLOPT_TRANSFERTEXT ( integer )

CURLOPT_RETURNTRANSFER ( integer )

CURLOPT_QUOTE ( integer )

CURLOPT_POSTQUOTE ( integer )

CURLOPT_INTERFACE ( integer )

CURLOPT_KRB4LEVEL ( integer )

CURLOPT_HTTPPROXYTUNNEL ( integer )

CURLOPT_FILETIME ( integer )

CURLOPT_WRITEFUNCTION ( integer )

CURLOPT_READFUNCTION ( integer )

CURLOPT_PASSWDFUNCTION ( integer )

CURLOPT_HEADERFUNCTION ( integer )

CURLOPT_MAXREDIRS ( integer )

CURLOPT_MAXCONNECTS ( integer )

CURLOPT_CLOSEPOLICY ( integer )

CURLOPT_FRESH_CONNECT ( integer )

CURLOPT_FORBID_REUSE ( integer )

CURLOPT_RANDOM_FILE ( integer )

CURLOPT_EGDSOCKET ( integer )

CURLOPT_CONNECTTIMEOUT ( integer )

CURLOPT_SSL_VERIFYPEER ( integer )

CURLOPT_CAINFO ( integer )

CURLOPT_COOKIEJAR ( integer )

CURLOPT_SSL_CIPHER_LIST ( integer )

CURLOPT_BINARYTRANSFER ( integer )

CURLCLOSEPOLICY_LEAST_RECENTLY_USED ( integer )

CURLCLOSEPOLICY_LEAST_TRAFFIC ( integer )

CURLCLOSEPOLICY_SLOWEST ( integer )

CURLCLOSEPOLICY_CALLBACK ( integer )

CURLCLOSEPOLICY_OLDEST ( integer )

CURLINFO_EFFECTIVE_URL ( integer )

CURLINFO_HTTP_CODE ( integer )

CURLINFO_HEADER_SIZE ( integer )

CURLINFO_REQUEST_SIZE ( integer )

CURLINFO_TOTAL_TIME ( integer )

CURLINFO_NAMELOOKUP_TIME ( integer )

CURLINFO_CONNECT_TIME ( integer )

CURLINFO_PRETRANSFER_TIME ( integer )

CURLINFO_SIZE_UPLOAD ( integer )

CURLINFO_SIZE_DOWNLOAD ( integer )

CURLINFO_SPEED_DOWNLOAD ( integer )

CURLINFO_SPEED_UPLOAD ( integer )

CURLINFO_FILETIME ( integer )

CURLINFO_SSL_VERIFYRESULT ( integer )

CURLINFO_CONTENT_LENGTH_DOWNLOAD ( integer )

CURLINFO_CONTENT_LENGTH_UPLOAD ( integer )

CURLE_OK ( integer )

CURLE_UNSUPPORTED_PROTOCOL ( integer )

CURLE_FAILED_INIT ( integer )

CURLE_URL_MALFORMAT ( integer )

CURLE_URL_MALFORMAT_USER ( integer )

CURLE_COULDNT_RESOLVE_PROXY ( integer )

CURLE_COULDNT_RESOLVE_HOST ( integer )

CURLE_COULDNT_CONNECT ( integer )

CURLE_FTP_WEIRD_SERVER_REPLY ( integer )

CURLE_FTP_ACCESS_DENIED ( integer )

CURLE_FTP_USER_PASSWORD_INCORRECT ( integer )

CURLE_FTP_WEIRD_PASS_REPLY ( integer )

CURLE_FTP_WEIRD_USER_REPLY ( integer )

CURLE_FTP_WEIRD_PASV_REPLY ( integer )

CURLE_FTP_WEIRD_227_FORMAT ( integer )

CURLE_FTP_CANT_GET_HOST ( integer )

CURLE_FTP_CANT_RECONNECT ( integer )

CURLE_FTP_COULDNT_SET_BINARY ( integer )

CURLE_PARTIAL_FILE ( integer )

CURLE_FTP_COULDNT_RETR_FILE ( integer )

CURLE_FTP_WRITE_ERROR ( integer )

CURLE_FTP_QUOTE_ERROR ( integer )

CURLE_HTTP_NOT_FOUND ( integer )

CURLE_WRITE_ERROR ( integer )

CURLE_MALFORMAT_USER ( integer )

CURLE_FTP_COULDNT_STOR_FILE ( integer )

CURLE_READ_ERROR ( integer )

CURLE_OUT_OF_MEMORY ( integer )

CURLE_OPERATION_TIMEOUTED ( integer )

CURLE_FTP_COULDNT_SET_ASCII ( integer )

CURLE_FTP_PORT_FAILED ( integer )

CURLE_FTP_COULDNT_USE_REST ( integer )

CURLE_FTP_COULDNT_GET_SIZE ( integer )

CURLE_HTTP_RANGE_ERROR ( integer )

CURLE_HTTP_POST_ERROR ( integer )

CURLE_SSL_CONNECT_ERROR ( integer )

CURLE_FTP_BAD_DOWNLOAD_RESUME ( integer )

CURLE_FILE_COULDNT_READ_FILE ( integer )

CURLE_LDAP_CANNOT_BIND ( integer )

CURLE_LDAP_SEARCH_FAILED ( integer )

CURLE_LIBRARY_NOT_FOUND ( integer )

CURLE_FUNCTION_NOT_FOUND ( integer )

CURLE_ABORTED_BY_CALLBACK ( integer )

CURLE_BAD_FUNCTION_ARGUMENT ( integer )

CURLE_BAD_CALLING_ORDER ( integer )

CURLE_HTTP_PORT_FAILED ( integer )

CURLE_BAD_PASSWORD_ENTERED ( integer )

CURLE_TOO_MANY_REDIRECTS ( integer )

CURLE_UNKNOWN_TELNET_OPTION ( integer )

CURLE_TELNET_OPTION_SYNTAX ( integer )

CURLE_OBSOLETE ( integer )

CURLE_SSL_PEER_CERTIFICATE ( integer )

PHPをCURLサポート機能付きでコンパイルした場合、curl関数を使用可能 となります。CURL関数の基本的な使用法は、 curl_init() によりCURLセッションを初期化し、 続いて curl_exec() により転送を実行し、 curl_close() によりセッションを終了するというも のになります。CURL関数を使用してPHPホームページをファイルに取得す る例を示します。

例 1 PHPのCURLモジュールを使用してexample.comのホームページを取得する

 ?php

$ch = curl_init ("http://www.php.net/");
$fp = fopen ("php_homepage.txt", "w");

curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_setopt ($ch, CURLOPT_HEADER, 0);

curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
? 


目次
curl_close -- CURLセッションを閉じる
curl_errno -- 直近のエラー番号を意味する整数を返す
curl_error -- カレントのセッションに関して直近のエラー文字列を返す
curl_exec -- CURLセッションを実行する
curl_getinfo -- 指定した伝送に関する情報を得る
curl_init -- CURLセッションを初期化
curl_setopt -- CURL転送用オプションを設定する
curl_version -- カレントのCURLのバージョンを返す