ホームページ > バックエンド開発 > PHPチュートリアル > PHP CURLを使用してリクエストを送信するための詳細なチュートリアル

PHP CURLを使用してリクエストを送信するための詳細なチュートリアル

angryTom
リリース: 2023-04-07 07:06:01
オリジナル
9687 人が閲覧しました

PHP CURLを使用してリクエストを送信するための詳細なチュートリアル

php について詳しく知りたい場合は、次をクリックしてください: php チュートリアル

cURLURL 構文を使用して、ブラウザをシミュレートしてデータを送信できます。シミュレートされたブラウザであるため、複数のプロトコル、FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE、および次のような LDAP プロトコルを十分にサポートできます: HTTPS 認証、HTTP POST メソッド、HTTP PUT メソッド、FTP アップロード、keyberos 認証、HTTP アップロード、プロキシ サーバー、Cookie、ユーザー名/パスワード認証、ファイル ブレークポイントのダウンロード アップロードの再開、ブレークポイントでのファイルのアップロード、 http プロキシ サーバー パイプライン、IPv6、scoket5 プロキシ サーバーもサポートし、http プロキシ サーバーを介して FTP サーバーにファイルをアップロードします。

PHP の cURL ライブラリを使用すると、Web ページを簡単かつ効果的にクロールできます。 スクリプトを実行し、クロールした Web ページを分析するだけで、必要なデータをプログラムで取得できます。リンクから部分データを取得する場合でも、XML ファイルを取得してデータベースにインポートする場合でも、単に Web ページのコンテンツを取得する場合でも、cURL は強力な PHP ライブラリです。

1. PHP で CURL リクエストを確立するための基本手順

##①: 初期化

curl_init()

②: プロパティを設定します

curl_setopt(). 設定する cURL パラメータの長いリストがあります。 URL リクエストのさまざまな詳細を指定できます。

③: 実行して結果を取得します

curl_exec()

④: ハンドルを解放します

curl_close()

2. 例:

#php カール送信get リクエスト:

//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//执行命令
$data = curl_exec($curl);
echo curl_getinfo($curl,CURLINFO_HTTP_CODE); //输出请求状态码
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
ログイン後にコピー

phpcurl は post リクエストを送信します:

//初始化
$curl = curl_init();
//设置抓取的url
curl_setopt($curl, CURLOPT_URL, 'http://localhost/test/test.php');
//设置头文件的信息作为数据流输出
curl_setopt($curl, CURLOPT_HEADER, 1);
//设置获取的信息以文件流的形式返回,而不是直接输出。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置post方式提交
curl_setopt($curl, CURLOPT_POST, 1);
//设置post数据
$post_data = array(
    "title" => "1290800466",
    "content" => "3424243243"
);
//post提交的数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
//执行命令
$data = curl_exec($curl);
//关闭URL请求
curl_close($curl);
//显示获得的数据
print_r($data);
ログイン後にコピー

test.php:

<?php
$title = $_REQUEST[&#39;title&#39;];
$content = $_REQUEST[&#39;content&#39;];
error_log($title."\n",3,&#39;error.log&#39;);
error_log($content."\n",3,&#39;error.log&#39;);
echo &#39;ok&#39;;
ログイン後にコピー

3. PHP cURL 関数:

PHP cURL 関数のリストを以下に示します:

関数 説明
curl_close() cURL セッションを閉じます。
curl_copy_handle() cURL ハンドルとそのすべてのオプションをコピーします。
curl_errno() 最後のエラー番号を返します。
curl_error() 現在のセッションの最新のエラーを保護する文字列を返します。
curl_escape() 指定された文字列を URL エンコードしたエスケープ文字列を返します。
curl_exec() cURL セッションを実行します。
curl_file_create() CURLFile オブジェクトを作成します。
curl_getinfo() cURL 接続リソース ハンドルに関する情報を取得します。
curl_init() cURL セッションを初期化します。
curl_multi_add_handle() 個々の Curl ハンドルを Curl バッチ セッションに追加します。
curl_multi_close() cURL ハンドルのグループを閉じます。
curl_multi_exec() 現在の cURL ハンドルのサブ接続を実行します。
curl_multi_getcontent() CURLOPT_RETURNTRANSFER が設定されている場合は、取得した出力のテキスト ストリームを返します。
curl_multi_info_read() 現在解析されている cURL の関連送信情報を取得します。
curl_multi_init() 新しい cURL バッチ ハンドルを返します。
curl_multi_remove_handle() curl バッチ ハンドル リソース内のハンドル リソースを削除します。
curl_multi_select() cURL バッチ内のすべてのアクティブな接続を待ちます。
curl_multi_setopt() バッチ cURL 転送オプションを設定します。
curl_multi_strerror() エラー コードを説明する文字列テキストを返します。
curl_pause() 接続を一時停止して再開します。
curl_reset() libcurl のセッション ハンドルのすべてのオプションをリセットします。
curl_setopt_array() cURL 転送セッションのオプションをバッチで設定します。
curl_setopt() cURL 転送オプションを設定します。
curl_share_close() cURL 共有ハンドルを閉じます。
curl_share_init() cURL 共有ハンドルを初期化します。
curl_share_setopt() 共有ハンドルの cURL 転送オプションを設定します。
curl_strerror() エラー コードの説明文字列を返します。
curl_unescape() URL エンコードされた文字列をデコードします。
curl_version() cURL のバージョン情報を取得します。

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

一部のステータス コード

1xx: リクエストを受信しました。処理を続行します。

2xx: 操作を正常に受信しました。分析、受け入れ

3xx: このリクエストを完了するにはさらなる処理が必要です

4xx: リクエストに不正な構文が含まれているか、完了できません

5xx: サーバーは完全に有効なリクエストの実行に失敗しました

100—クライアントはリクエストを継続する必要があります

101—クライアントはサーバーに対し、リクエストに従って HTTP プロトコルのバージョンを変換することを要求します

200—トランザクションは成功しました

201——新しいファイルの URL を確認するプロンプト

202——受け入れられ処理されましたが、処理は完了していません

203——戻り情報が不確実または不完全です

204——リクエストは受信されましたが、戻り情報が空です

205 - サーバーはリクエストを完了しました。ユーザー エージェントは現在参照しているファイルをリセットする必要があります

206 - サーバーは一部のユーザーの GET リクエストを完了しました

300---リクエストされたリソースは複数の場所で利用可能です

301---リクエスト データを削除します

302—要求データは別のアドレスで見つかりました

303——他の URL にアクセスするか、アクセス方法にアクセスすることをお勧めします

304—クライアントは GET を実行しましたが、ファイルは変更されていません

305——要求されたリソースは、サーバーによって指定されたアドレスから取得する必要があります

306——以前のバージョンの HTTP で使用されていたコードであり、現在では使用されていません現在のバージョン

307---要求されたリソースが一時的に削除されるという宣言

400---構文エラーなどの不正なリクエスト

401---リクエストの承認に失敗しました

402——有効な ChargeTo ヘッダー応答を保持します

403——リクエストは許可されません

404—— ファイル、クエリ、または URL が見つかりません

405 - 定義されたメソッドユーザーによる Request-Line フィールドの入力は許可されていません

406 - ユーザーが送信した Accept ドラッグによれば、要求されたリソースにはアクセスできません

407 - 401 と同様に、ユーザー最初にプロキシ サーバーで承認を取得する必要があります

408 - クライアントはユーザーが指定した時間内にリクエストを完了しませんでした

409 - 現在のリソース ステータスでは、リクエストを完了できません

410 - このリソースはサーバー上にもう存在せず、これ以上の参照アドレスはありません

411 - サーバーはユーザー定義の Content-Length 属性要求を拒否します

412 - 1 つまたは現在のリクエストではさらに多くのリクエスト ヘッダー フィールドが正しくありません

413 - リクエストされたリソースがサーバーで許可されているサイズより大きい

414 - リクエストされたリソース URL がサーバーで許可されている長さ # より長い

##415 - 要求されたリソースはリクエスト項目形式をサポートしていません

416 - リクエストには Range リクエスト ヘッダー フィールドが含まれており、現在リクエストされているリソース範囲内に範囲指示値がありません。

If-Range リクエスト ヘッダー フィールドは含まれません

417 - サーバーはリクエストの Expect ヘッダー フィールドで指定された期待を満たしていません。プロキシ サーバーの場合は、次の可能性があります。次のレベルのサーバーは要求を満たすことができません

500 - サーバーは内部エラーを生成しました

501 - サーバーは要求された機能をサポートしていません

502 - サーバーはシステムの過負荷を防ぐため、一時的に利用できなくなります

503——サーバーが過負荷になっているか、メンテナンスのために一時停止されています

504——ゲートウェイが過負荷です。サーバーは別のゲートまたはサービスを使用して、

505——サーバー リクエスト ヘッダーで指定された HTTP バージョンがサポートされていないか、サポートが拒否されています

以上がPHP CURLを使用してリクエストを送信するための詳細なチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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