【PHP8.x】curl_version関数の使い方

作成日: 更新日:

curl_version関数は、PHPが利用しているlibcurlライブラリのバージョン情報と、その機能に関する詳細な情報を取得する関数です。libcurlは、HTTP、HTTPS、FTPなど様々なプロトコルを利用してデータを送受信するための強力なクライアントサイドライブラリであり、PHPのcURL拡張はこのlibcurlの機能を提供します。

この関数を実行すると、libcurlの具体的なバージョン番号、ビルドされたホスト環境、サポートしているSSL/TLSライブラリ(OpenSSLなど)やデータ圧縮ライブラリ(Zlibなど)のバージョン、そして利用可能な通信プロトコル(例えば、FTP、HTTP、HTTPS、SCPなど)やその他の機能(例:IPv6サポート、Kerberos認証)に関する情報が連想配列として返されます。

システムエンジニアを目指す方にとって、この関数はアプリケーションが外部サービスと安全かつ効率的に通信するための基盤となる環境を理解する上で非常に重要です。例えば、PHPアプリケーションがHTTPSで通信する必要がある場合、curl_version関数を使ってSSL/TLSサポートが有効になっているかを確認できます。また、デバッグ時や、開発環境と本番環境での挙動の違いを特定する際にも、現在のlibcurlライブラリの詳細な情報を把握することは、問題解決の糸口となるでしょう。このように、curl_version関数は、PHPアプリケーションのネットワーク通信環境を正確に把握し、安定した動作を確保するために不可欠な情報を提供するものです。

基本的な使い方

構文(syntax)

<?php
curl_version();

引数(parameters)

引数なし

引数はありません

戻り値(return)

array|false

PHPのcurl_version()関数は、cURLライブラリのバージョン情報を含む連想配列を返します。ただし、cURLライブラリが利用できない場合はfalseを返します。

サンプルコード

PHP curl_versionでcURLバージョン情報を取得する

<?php

/**
 * cURLライブラリのバージョン情報を取得して表示します。
 * システムエンジニアを目指す初心者向けに、curl_version関数の基本的な使い方を示します。
 *
 * @return void
 */
function displayCurlVersionInfo(): void
{
    // curl_version()関数を呼び出し、cURLライブラリのバージョン情報を取得します。
    // 成功した場合は配列を、失敗した場合はfalseを返します。
    $curlInfo = curl_version();

    // 取得結果がfalseでないかチェックし、エラーハンドリングを行います。
    if ($curlInfo === false) {
        echo "エラー: cURLのバージョン情報を取得できませんでした。\n";
        echo "PHPのcURLエクステンションが有効になっているか確認してください。\n";
        return;
    }

    echo "--- cURL ライブラリ バージョン情報 ---\n";

    // 取得した配列から主要な情報を抽出し、表示します。
    // PHP 7.0以降のnull合体演算子 (??) を使用して、キーが存在しない場合に 'N/A' を表示します。
    echo "cURL バージョン: " . ($curlInfo['version'] ?? 'N/A') . "\n";
    echo "cURL バージョン番号: " . ($curlInfo['version_number'] ?? 'N/A') . "\n";
    echo "リリース日: " . ($curlInfo['release'] ?? 'N/A') . "\n";
    echo "ホスト: " . ($curlInfo['host'] ?? 'N/A') . "\n";
    echo "SSL バージョン: " . ($curlInfo['ssl_version'] ?? 'N/A') . "\n";

    // サポートされているプロトコルは配列なので、カンマ区切りで表示します。
    if (isset($curlInfo['protocols']) && is_array($curlInfo['protocols'])) {
        echo "サポートされているプロトコル: " . implode(', ', $curlInfo['protocols']) . "\n";
    } else {
        echo "サポートされているプロトコル: N/A\n";
    }

    echo "--------------------------------------\n";
}

// 関数を実行して、cURLのバージョン情報を表示します。
displayCurlVersionInfo();

?>

PHPのcurl_version関数は、ウェブサーバーとのデータ送受信によく使われるcURLライブラリのバージョン情報を取得する際に利用されます。この関数は引数をとりません。

成功すると、cURLライブラリの詳細な情報(バージョン、リリース日、ホスト、SSLバージョン、サポートされているプロトコルなど)を含む連想配列を返します。しかし、cURLエクステンションが有効になっていないなどの理由で情報の取得に失敗した場合は、falseが戻り値となります。そのため、関数がfalseを返したかどうかをチェックし、適切にエラーを処理することが重要です。

サンプルコードでは、まずcurl_version()関数を実行し、その結果を$curlInfo変数に格納しています。もし$curlInfofalseであれば、エラーメッセージを表示して処理を終了します。成功した場合は、取得した連想配列からversionreleaseなどのキーを使って各情報を抽出し、画面に出力しています。特にprotocolsは配列として返されるため、implode関数を用いてカンマ区切りの文字列に変換して表示しています。また、?? 'N/A'というnull合体演算子を使って、もし情報が存在しない場合でもエラーにならず「N/A」と表示されるように工夫されており、堅牢なコードの書き方を学べます。この関数を使うことで、開発環境や本番環境のcURLライブラリの状況を手軽に把握できます。

curl_version関数は、PHPにcURLエクステンションがインストールされ、有効になっている場合にのみ利用できます。関数が失敗するとfalseを返すため、戻り値を必ずチェックし、エラー処理を行うことが非常に重要です。そうしないと、cURLが利用できない環境で実行した際に予期せぬエラーが発生する可能性があります。

戻り値の配列に含まれるキーは、cURLのバージョンやビルド環境によって異なる場合があります。そのため、サンプルコードのようにnull合体演算子??などを利用して、キーが存在しない場合でも安全にアクセスできるよう配慮しましょう。特にprotocolsキーはサポートされているプロトコルが配列で返されるため、表示する際はimplode関数などで適切に整形すると良いでしょう。

PHPのcurlバージョン情報を取得する

<?php

/**
 * CURLライブラリのバージョン情報を取得し、表示する関数です。
 *
 * この関数は、システムエンジニアを目指す初心者がPHPのCURL拡張の
 * 環境情報を簡単に確認できるように設計されています。
 * CURLのバージョン、SSLライブラリ、Zlibなどの詳細が含まれます。
 */
function displayCurlVersionInfo(): void
{
    echo "CURLバージョン情報取得中...\n\n";

    // curl_version() 関数を呼び出してCURLのバージョン情報を取得します。
    // 成功した場合、CURLの詳細情報を含む連想配列を返します。
    // 失敗した場合 (例: PHPにCURL拡張がインストールされていない、または有効になっていない場合) は、
    // 論理値の false を返します。
    $curlInfo = curl_version();

    // 取得した情報が false でないかを確認します。
    // false の場合は、CURL拡張が利用できないか、エラーが発生したことを示します。
    if ($curlInfo === false) {
        echo "エラー: CURL拡張が有効になっていないか、バージョン情報の取得に失敗しました。\n";
        echo "PHPの設定 (php.ini) でCURL拡張が有効になっているか確認してください。\n";
        echo "例: 'extension=curl' の行がコメントアウトされていないか ('extension=curl' の前に ';' がないか)。\n";
    } else {
        // 成功した場合、取得した配列の内容を人間が読みやすい形式で表示します。
        // print_r は配列の構造と内容を初心者にもわかりやすく出力するのに適しています。
        echo "---- CURL 全バージョン情報 ----\n";
        print_r($curlInfo);
        echo "------------------------------\n\n";

        // いくつかの主要な情報を個別に表示し、配列のキーと値の関係を理解しやすくします。
        echo "---- 主要なCURL情報 ----\n";
        echo "  CURL バージョン: " . ($curlInfo['version'] ?? 'N/A') . "\n";
        echo "  SSL バージョン: " . ($curlInfo['ssl_version'] ?? 'N/A') . "\n";
        echo "  ホスト: " . ($curlInfo['host'] ?? 'N/A') . "\n";
        echo "  サポートプロトコル: " . implode(', ', ($curlInfo['protocols'] ?? ['N/A'])) . "\n";
        echo "------------------------\n";
    }
}

// 上記で定義した関数を実行し、CURLのバージョン情報を表示します。
displayCurlVersionInfo();

?>

このPHPサンプルコードは、CURLライブラリのバージョン情報を取得し表示する方法を示しています。curl_version()関数は、引数を必要とせず、現在システムにインストールされているCURL拡張に関する詳細な環境情報を取得するために使用されます。

この関数が成功すると、CURLのバージョン番号、SSLライブラリのバージョン、Zlibのサポート状況、対応しているプロトコル一覧など、多岐にわたる情報が格納された連想配列を返します。これにより、開発者はPHP環境におけるCURLの能力や設定を簡単に確認できます。

もしCURL拡張がPHPにインストールされていない、または有効になっていない場合、curl_version()関数は論理値のfalseを返します。サンプルコードでは、このfalseが返された場合に、エラーメッセージとともにCURL拡張の有効化を促す案内が表示されるように設計されており、システムエンジニアを目指す初心者の方でも問題の切り分けができるよう配慮されています。

情報が正常に取得できた際には、print_r関数を用いてすべての取得情報を網羅的に表示し、さらにCURLバージョンやSSLバージョンといった主要な項目を抜き出してわかりやすく表示しています。これにより、自身のPHP環境でCURLがどのように動作しているかを一目で把握することが可能です。

このサンプルコードでは、curl_version() 関数がPHPにCURL拡張がインストールされ、有効になっていない場合に false を返す点に特に注意が必要です。必ず if ($curlInfo === false) のように厳密な比較でエラーを検出し、拡張機能の有効化(php.iniでの extension=curl の設定など)を促すメッセージを表示しましょう。

正常に情報が取得できた場合は連想配列が返されますが、利用したいキー(例えば 'version''ssl_version' など)が常に存在するとも限りません。存在しないキーにアクセスするとエラーになるため、$curlInfo['key'] ?? 'N/A' のようにヌル合体演算子 (??) を用いてデフォルト値を指定すると、より安全にコードを記述できます。また、取得した情報全体を確認する際は print_r() を活用すると便利です。

【PHP8.x】curl_version関数の使い方 | いっしー@Webエンジニア