PHP 関数 CURL
cURL は、URL 構文を使用してファイルやデータを転送するツールです。HTTP、FTP、TELNET などの多くのプロトコルをサポートしています。最も優れた点は、PHP が cURL ライブラリもサポートしていることです。この記事では、cURL の高度な機能と、それを PHP で使用する方法を紹介します。
なぜ cURL を使用するのですか?
はい、他の方法で Web コンテンツを取得できます。ほとんどの場合、私は怠惰になりたいので、単純な PHP 関数を使用するだけです。
以下は引用されたコンテンツです: $content = file_get_contents("http://www.nettuts.com") ; |
ただし、これはこのアプローチには柔軟性と効率的なエラー処理が欠けています。さらに、Cookie の処理、検証、フォームの送信、ファイルのアップロードなど、一部の難しいタスクを完了するために使用することはできません。
引用:
cURL は、さまざまなプロトコルとオプションをサポートし、URL リクエストに関連するさまざまな詳細を提供できる強力なライブラリです。
基本構造
より複雑な関数を学ぶ前に、PHP で cURL リクエストを確立するための基本的な手順を見てみましょう:
設定変数を初期化して実行し、結果を取得して cURL ハンドルを解放します 以下は引用された内容: // 1. 初期化 |
2 番目のステップ (つまり、curl_setopt()) が最も重要であり、すべての謎がここにあります。 URL リクエストのさまざまな詳細を指定する、設定できる cURL パラメーターの長いリストがあります。これらをすべて一度に読んで理解するのは難しい場合があるため、今日はより一般的で便利なオプションのみを試します。
エラーをチェックする
エラーをチェックするステートメントを追加できます(これは必須ではありません):
以下は引用された内容です: // ... |
比較するときは、" を使用することに注意してください。 「== FALSE」ではなく「=== FALSE」です。空の出力とブール値 FALSE (実際のエラー) を区別する必要があるためです。
情報の取得
これは、cURL の実行後にこのリクエストに関する情報を取得できる別のオプションの設定です:
以下は引用された内容です: // ... |
以下、引用内容です // 検索用の URL |
まず、テストする必要がある URL のセットを作成し、次にテストする必要があるブラウザー情報のセットを指定します。最後に、ループを使用して、発生する可能性のあるさまざまな URL とブラウザーの一致状況をテストします。
cURL オプションを指定したため、返される出力コンテンツには HTTP ヘッダー情報 ($output に保存される) のみが含まれます。単純な規則ルールを使用して、ヘッダー情報に「Location:」という単語が含まれているかどうかを確認します。
このコードを実行すると、次の結果が返されるはずです:
POST メソッドを使用したデータの送信
GET リクエストを行う場合、データは「クエリ文字列」を介して URL に渡すことができます。たとえば、Google で検索する場合、検索キーは URL のクエリ文字列の一部です:
http://www.google.com/search?q=nettuts
この場合、シミュレーションに cURL は必要ない可能性があります。 。この URL を「file_get_contents()」にスローすると、同じ結果が得られます。
ただし、一部の HTML フォームは POST メソッドを使用して送信されます。このフォームが送信されると、データはクエリ文字列ではなく HTTP リクエスト本文を通じて送信されます。たとえば、CodeIgniter フォーラム フォームを使用する場合、どのようなキーワードを入力しても、常に次のページに POST されます:
http://codeigniter.com/forums/do_search/
PHP スクリプトを使用して、この URL の質問をシミュレートします。まず、POST データを受け入れて表示できる新しいファイルを作成します。post_output.php という名前を付けます。次に、cURL リクエストを実行する PHP スクリプトを作成します。以下は引用された内容です:
$url = "http://localhost/post_output.php";
$post_data = array ("foo" => "bar",
"query" => "Nettuts " ,"action" => "送信"
);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // us In POSTデータです! curl_setopt($ch, CURLOPT_POST, 1);//post 変数を | ファイルのアップロードは、前の POST と非常に似ています。すべてのファイル アップロード フォームは POST メソッドを通じて送信されるためです。
print_r($_FILES);
以下は、実際にファイルアップロードタスクを実行するスクリプトです:
以下は引用内容:
$url = "http://localhost/upload_output.php";
$post_data = array ("foo" => "bar",
// アップロードするローカルファイルのアドレス"upload" => " @C:/wamp/www/test.zip"
);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);$output =curl_exec($ch); ファイルをアップロードする必要がある場合は、post 変数のようにファイル パスを渡すだけですが、先頭に @ 記号を追加することを忘れないでください。このスクリプトを実行すると、次の出力が得られます:
cURL バッチ処理 (マルチ cURL) cURL には、バッチ ハンドル (ハンドル) という高度な機能もあります。この機能を使用すると、複数の URL 接続を同時にまたは非同期で開くことができます。 以下は php.net のサンプルコードです:
|

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
