XVIII. CURL, 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で追加されました。

要件

PHP の cURL 関数を使用するためには、libcurl パッケージをインストールしておく必要があります。PHP は、 libcurl 7.0.2-beta 以降を必要とします。 PHP バージョン 4.2.3 以降、少なくとも libcurl バージョン 7.9.0 以降が必要となっています。 PHP 4.3.0 以降では、7.9.8 以降が必要です。 PHP 5.0.0 では、おそらく、libcurl 7.10.5 以降が必要となります。

インストール手順

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

Win32 ユーザへの注意: このモジュールを Windows 環境で使用可能とするには、 libeay32.dll および ssleay32.dll が PATH の通った場所に存在する必要があります。

cURL のサイトにある libcurl.dll は不要です。

リソース型

この拡張モジュールで定義しているリソース型は cURL ハンドルおよび cURL マルチハンドルのふたつです。

定義済み定数

cURL の 定義済み定数 も参照ください。

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

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

<?php

$ch
= curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");

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

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

目次
定数 -- 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 拡張モジュールに関連付けられているすべてのソケットを取得し、「選択可能な」状態にする
curl_setopt_array -- CURL 転送用の複数のオプションを設定する
curl_setopt -- cURL 転送用オプションを設定する
curl_version -- cURL のバージョンを返す