PHP 入門: CURL 拡張機能

王林
リリース: 2023-05-21 09:38:01
オリジナル
1788 人が閲覧しました

PHP は Web 開発で広く使用されている言語であり、CURL は PHP で最も広く使用されている拡張機能の 1 つです。この記事では、初心者でもすぐに始められるように、CURLの基本的な使い方と応用方法を紹介します。

1. CURL の概要

CURL は、URL 構文を使用してデータを送信するコマンド ライン ツールであり、複数のプロトコルをサポートし、複数のプラットフォームで実行できるライブラリでもあります。 PHP で CURL 拡張機能を使用する場合、主に HTTP や HTTPS などのプロトコルを介したネットワーク通信で、他のサーバーへのデータの送信、サーバー応答の取得、フォーム送信のシミュレートなどに使用されます。

2. CURL のインストール

PHP で CURL 拡張機能を使用するには、ローカル環境が CURL ライブラリをサポートしていることを確認する必要があります。 Linux および Mac OS の場合

インストールが完了したら、

phpinfo()

関数を使用してインストールが完了したかどうかを確認できます。curl サポートが有効であることを示すプロンプトが表示された場合は、 CURL 拡張機能の準備ができていることを意味します。 3. CURL の基本的な使用方法

GET リクエストの送信
  1. GET リクエストを送信する基本的な形式は次のとおりです:
sudo apt-get install libcurl4-openssl-dev // Debian/Ubuntu 

sudo yum install curl-devel // CentOS/Fedora
ログイン後にコピー

Among

curl_init()

この関数は CURL オブジェクトの初期化に使用され、curl_setopt() 関数は CURL リクエストのオプションの設定に使用され、curl_exec() 関数は CURL リクエストを実行するために使用され、応答結果を取得します。 curl_close() 関数は CURL オブジェクトを閉じるために使用されます。 上記の例では、

curl_setopt()

関数を使用して、要求された URL、CURLOPT_RETURNTRANSFER オプション、および CURLOPT_HEADER オプションを設定します。このうち、CURLOPT_RETURNTRANSFER オプションを 1 に設定すると、取得した応答結果が文字列で返されることを意味します。 CURLOPT_HEADERオプションを 0 に設定すると、応答ヘッダ情報が応答結果に含まれないことを意味します。

POST リクエストの送信
  1. POST リクエスト送信の基本的な形式は次のとおりです:
<?php
//创建CURL对象
$ch = curl_init();
//设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://api.example.com/user?id=123");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
//执行CURL请求并获取响应结果
$output = curl_exec($ch);
//关闭CURL对象
curl_close($ch);
//输出响应结果
echo $output; 
?>
ログイン後にコピー

その中には、

curl_setopt()

関数があります。が新たに追加されました。 CURLOPT_POSTCURLOPT_POSTFIELDS の 2 つのオプションが使用可能です。 CURLOPT_POST オプションが 1 に設定されている場合、リクエストが POST モードで送信されることを意味します。CURLOPT_POSTFIELDS オプションが文字列に設定されている場合、これらのデータは次のように送信されることを意味します。 POSTリクエストの本文。 POST データをサーバーに正しく送信するには、正しい

Content-Type

ヘッダー情報を設定する必要があることに注意してください。これは、curl_setopt() 関数の CURLOPT_HTTPHEADER オプションを介して設定できます。 4. CURL の高度な使用方法

HTTP ヘッダー情報の設定
curl_setopt()

関数を使用できますCURLOPT_HTTPHEADER HTTP ヘッダー情報を設定するオプション。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;?php //创建CURL对象 $ch = curl_init(); //设置URL和相应的选项 curl_setopt($ch, CURLOPT_URL, &quot;http://api.example.com/user&quot;); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, &quot;id=123&amp;name=John&quot;); //执行CURL请求并获取响应结果 $output = curl_exec($ch); //关闭CURL对象 curl_close($ch); //输出响应结果 echo $output; ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>上記のコードは、Content-Type ヘッダー情報を application/json に設定し、Authorization という名前のヘッダー情報を設定し、その値を設定します。このヘッダー情報の目的は、サーバーがリクエストの正当性を検証できるように、リクエストにセキュリティ トークンを提供することです。

SSL/TLS 検証
  1. SSL/TLS 検証は、暗号化証明書の正当性を判断することでリクエストの安全性を確保する仕組みです。 CURL はさまざまなセキュリティ検証方法を提供しており、
curl_setopt()

関数の CURLOPT_SSL_VERIFYPEER および CURLOPT_SSL_VERIFYHOST オプションを通じて実現できます。 たとえば、次のコードを使用して SSL 証明書の検証をオフにすることができます:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer xxx'));
ログイン後にコピー

実際のアプリケーションでは、SSL 証明書の検証を有効にすることに注意してください。できる限りリクエストのセキュリティを確保することが重要です。

Cookie 処理
  1. CURL は HTTP Cookie を自動的に処理できるため、ユーザー セッションの管理に非常に便利です。 curl_setopt() 関数の CURLOPT_COOKIEJAR オプションを使用して、サーバーから返された Cookie 情報を保存できます。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
ログイン後にコピー

次のリクエストを送信するときは、curl_setopt() 関数の CURLOPT_COOKIEFILE オプションを使用して、Cookie 情報が保存されるファイル パスを指定します。

curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies');
ログイン後にコピー

4. 概要

この記事の導入を通じて、読者は GET/POST リクエストの送信、HTTP ヘッダー情報の設定、SSL など、CURL 拡張機能の基本的な使用法を最初に理解できたと思います。 / TLS 検証と Cookie の処理、これらの内容はプログラムのネットワーク通信を改善するのに役立ちます。次に、CURL 拡張機能を使用して実用的なネットワーク アプリケーションを開発し、さらに学習を続けてプログラミング スキルを向上させることができます。

以上がPHP 入門: CURL 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート