Forum und email

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 ホームページをファイルに取得する例を示します。

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

<?php

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

curl_setopt($chCURLOPT_FILE$fp);
curl_setopt($chCURLOPT_HEADER0);

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 のバージョンを返す