この記事ではcurlとlibcurlの違いの紹介を中心に、curlの概要、libcurlの概要、curlとlibcurlの比較、相違点について説明します。 「curl」の意味、および libcurl の使い方、その他の内容について、この記事を読んで初めて、libcurl を使用していることを知りました。必要な場合は参照してください
カールの紹介
curl は、URL 構文を使用してコマンドラインモードで動作するオープンソースのファイル転送ツールです。
多くのプロトコルをサポートしています: DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、Telnet、TFTP。
curl は、SSL 証明書、HTTP POST、HTTP PUT、FTP アップロード、フォームベースの HTTP アップロード、プロキシ、Cookie、ユーザー名/パスワード認証 (ベーシック、ダイジェスト、NTLM など)、ダウンロードされたファイルのブレークポイントの再開、ファイル転送の再開、 http プロキシ トンネリングおよびその他の機能。
curlはスウェーデンのcurl組織によって開発されました。curlの公式Webサイトはhttp://curl.haxx.se/です。そのソースコードと関連手順は公式Webサイトから入手できます。
libcurlの紹介
libcurl は、DICT、FILE、FTP、FTPS、Gopher、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、をサポートする無料のオープンソースのクライアント側 URL 送信ライブラリです。 SMTP、SMTPS、Telnet、TFTP、その他のプロトコル。
curl と同様に、libcurl も SSL 証明書、HTTP POST、HTTP PUT、FTP アップロード、フォームベースの HTTP アップロード、プロキシ、Cookie、ユーザー名/パスワード認証 (ベーシック、ダイジェスト、NTLM など)、ダウンロード ファイルの断片化をサポートしています [転送を再開] をクリックしてください、アップロード ファイル ブレークポイント レジューム (ファイル転送レジューム)、http プロキシ サーバー パイプライン (プロキシ トンネリング) など。
libcurl は移植性が高く、さまざまなプラットフォームで動作し、Windows、Unix、Linux などをサポートします。
libcurl は無料で、スレッドセーフで、IPV6 互換であり、その他多くの非常に豊富な機能を備えています。 libcurl は、多くの有名な大企業やアプリケーションで採用されています。
libcurlのソースコードと関連ドキュメントはここから入手できます。
curlとlibcurlの比較
類似点
curl と libcurl はどちらも、HTTP、HTTPS、FTP、FTPS、GOPHER、LDAP、DICT、TELNET、FILE など、さまざまなプロトコルを使用してファイルを転送できます。
違い
Curl はシェルまたはスクリプトを通じて実行できるコマンドライン ツールです。 curl で使用される基礎となるライブラリは libcurl です。
Libcurl は、通常、他のプログラムにバンドルされているライブラリです。たとえば、コマンド ライン ツールのcurlは、libcurl ライブラリをカプセル化します。そのため、独自のプログラムやプロジェクトで libcurl を使用して、CURL のような強力な機能を利用することもできます。次に紹介する PHP 拡張機能は、curl のカプセル化です。
いくつかの名詞
「カール」のさまざまな意味
1.curlとは、コマンドライン、スクリプト、バッチファイルからcurlを実行できるcurlコマンドラインツールを指します。 Curl は 1998 年に作成され、それを制御するための 100 以上のオプションを提供します。
2.cURLはソフトウェアプロジェクトの名前です。このソフトウェア プロジェクトには上記のcurlとlibcurlが含まれており、両方ともオープンソースです。
3.CURL は通常、PHP の libcurl 拡張機能の名前として使用されます。この拡張機能により、PHP プログラマはプログラム内で libcurl ライブラリによって提供される機能に確実にアクセスできるようになります。
curl — コマンドラインツール
1. シェルまたはスクリプトから実行できるコマンドラインツール。
2. 130種類以上の「フラグ」を提供します
3. 通常、ブラウザの動作をシミュレートするために使用されます
4. クロスプラットフォーム
libcurl — ライブラリ
1. 他のプログラムの開発ライブラリとして使用されます
2. PHP、C++など多くの言語と組み合わせることができます
3.クロスプラットフォーム
4. 使用するためのさまざまな API を提供します
PHPでcurlとlibcurlを使う
PHPでcurlを使う
PHP でのcurlの使用は非常に簡単で、システムコマンドを実行するPHPのいくつかの関連関数を呼び出すだけです。
コード例:
コードは以下の通りです:
$baidu=shell_exec("/usr/bin/curl -L http://www.baidu.com");
var_dump($baidu);
PHPでlibcurlを使う
PHP で libcurl を使用します。これは、PHP で通常「カール」と呼ばれるものです。コンテンツのこの部分については、今後の記事で説明します。ここにサンプルコードを示します:
コードは次のとおりです:
// このスクリプトをサーバーに FTP 送信します
$fp = fopen(__FILE__, "r");
$url = "ftp://username:password@mydomain.com:21/path/to/newfile.php";
$ch =curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_FTPASCII, 1);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize(__FILE__));
$result =curl_exec($ch);
curl_close($ch);
curl または libcurl を使用しますか?
curl と libcurl のどちらを使用するかは、特定の状況によって異なります。たとえば、リモート サーバー上のファイルが変更されたときに電子メールを送信するスケジュールされたスクリプトがある場合、または現在の PHP 環境が libcurl をサポートしていない場合は、curl を使用する必要があります。それ以外の場合は、libcurl を使用できます。