ホームページ >バックエンド開発 >PHPチュートリアル >PHP CURL 関数の詳細な入門チュートリアル_PHP チュートリアル
php には、cURL 関数があり、さまざまなログインや収集のタスクをシミュレートするためによく使用されます。
cURLの紹介
cURL は、URL 構文を使用してデータやファイルを転送するツールで、HTTP、FTP、TELNET などの多くのプロトコルをサポートしています。 PHP は cURL ライブラリもサポートしています。
特定の Web ページのコンテンツを取得したい場合は、次のメソッドを使用できます:
コードは次のとおりです | コードをコピー |
//ファイル全体を配列に読み込みます //ファイルを読み取り、出力バッファに書き込みます
|
これらの方法は非常に単純ですが、柔軟性と効果的なエラー処理が欠けています。また、Cookie の処理、検証、フォームの送信、ファイルのアップロードなど、一部の難しいアクションを完了することもできません。
cURLの簡単な例
以下は、cURL の一般的な使用手順、php cURL 入門チュートリアルを学ぶことができる簡単なコードです。
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.curl リソースを解放します // 取得したソースコードを出力します |
2 番目のステップに関しては、curl_setopt() が最も重要です。設定する cURL パラメータの長いリストがあり、URL リクエストのさまざまな詳細を指定できます。
情報をゲット
これは、cURL の実行後にこのリクエストに関する情報を取得できる別のオプションの設定です:
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); // 1.初期化 // 2. オプションの設定 // 3. 実行して HTML ドキュメントのコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // cURL情報を取得して出力します // 5.カールハンドルを放します |
返された配列には次の情報が含まれます:
"url" // リソースネットワークアドレス
"content_type" // コンテンツタイプとエンコーディング
"http_code" // HTTP ステータスコード
"header_size" // ヘッダーサイズ
"request_size" // リクエストサイズ
"filetime" // ファイル作成時間
"ssl_verify_result" // SSL検証結果
"redirect_count" // ジャンプテクノロジー
"total_time" // 費やした合計時間
"namelookup_time" // DNS クエリには時間がかかります
"connect_time" // 接続の待機時間
"pretransfer_time" // 転送前の準備に時間がかかります
"size_upload" // アップロードされたデータのサイズ
"size_download" // ダウンロードしたデータのサイズ
"speed_download" // ダウンロード速度
"speed_upload" // アップロード速度
"download_content_length" // ダウンロードコンテンツの長さ
"upload_content_length" // アップロードされたコンテンツの長さ
"starttransfer_time" // 転送を開始する時間
"redirect_time" // リダイレクト時間
POSTメソッドを使用してデータを送信します
.php からの新機能
コードは次のとおりです | コードをコピー |
//投稿するデータ // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.カールハンドルを放します //出力内容
|
.php は初めてです
コードは次のとおりです | コードをコピー |
echo "from.php から to.php へのデータの POST が成功しました! 以下は to.php によって返されたデータです:
|
ファイルアップロード
すべてのファイル アップロード フォームは POST メソッドを通じて送信されるため、ファイルのアップロードは前の POST と非常に似ています。
.php からの新機能
コードは次のとおりです | コードをコピー |
//投稿するデータ // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.curl リソースを解放します //出力内容
|
.php の初心者:
コードは次のとおりです | コードをコピー |
print_r($_FILES); |
ファイルをアップロードする必要がある場合は、post 変数のようにファイル パスを渡すだけですが、先頭に @ 記号を追加することを忘れないでください。
その他の役立つ cURL の例
HTTP認証
URL リクエストに HTTP ベースの認証が必要な場合は、次のコードを使用できます:
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.カールハンドルを放します |
FTPアップロード
PHP には独自の FTP クラス ライブラリが付属していますが、cURL を使用することもできます。次の記事も参照してください: PHP は cURL を使用して ftp アップロードを実装します
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); //ファイルポインタを開く // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.カールハンドルを放します
|
プロキシを使用して cURL リクエストを行うことができます:
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.カールハンドルを放します
|
コールバック関数
URL リクエスト中に cURL で指定したコールバック関数を呼び出すことができます。たとえば、コンテンツまたは応答がダウンロードされたら、完全にダウンロードされるまで待つのではなく、すぐにデータの利用を開始します。
コードは次のとおりです | コードをコピー |
header("コンテンツタイプ: text/html; charset=utf-8"); // 1.初期化 // 2. オプションの設定 // 3. 実行して返されたコンテンツを取得します // 4. 間違った判断。これは空の出力ではなくブール値であるため、等号が 3 つあることに注意してください // 5.カールハンドルを放します //コールバック関数
|
このコールバック関数は文字列の長さを返す必要があります。そうでない場合、この関数は URL 応答を受信するプロセス中に、データ パケットが受信されている限り呼び出されます。
長く話しましたが、ftp アップロードを実装するための高度で実用的な関数 cURL を紹介しましょう
Webサーバーのアップロード制限:
PHP のデフォルトのアップロード制限は 2M です。2M を超えるファイルをアップロードする場合は、PHP 設定を変更するか、次のコードを使用して .htaceess ファイルを作成する必要があります。
コードは次のとおりです | コードをコピー |
php_value Upload_max_filesize 16M |
ファイルのアップロード中に POST フォーム内の他のフォーム項目の値も必要になる可能性があるため、ここではファイル アップロードの最大制限を 16M に設定し、post_max_size の値を 20M に設定します。
作成した .htaccess は、アップロード スクリプトと同じディレクトリに配置する必要があります。
ファイルのアップロードには cURL を使用します
cURL は、URL 構文を使用してファイルやデータを転送するツールで、HTTP、FTP、TELNET などの多くのプロトコルをサポートしています。 Cookie の処理、検証、フォームの送信、ファイルのアップロード、FTP アップロードなど、多くの困難なタスクを完了できます。
ここでは、Web フォームを使用して FTP スペースにファイルをアップロードします。ここの FTP スペースはパスワードで保護されています。
コードは次のとおりです | コードをコピー |
このフォームページは比較的シンプルで、ファイルのアップロード機能のみを備えています。
次に、アップロードされたファイルを受信し、cURL を使用してファイル ストリームを開いてリモート FTP サーバーに転送するには、次の PHP コードが必要です。
コードは次のとおりです | コードをコピー |
|
ユーザーがファイルを選択してアップロードすると、最初にファイルが Web サーバーに保存されます。fopen を使用して一時ファイルを開き、送信された URL に FTP アカウントとパスワードを入力して cURL セッションを初期化します。 cURL のその他の必要なパラメータで十分です。返されたエラーの数が 0 の場合、ファイルは正常にアップロードされました。
まとめ
今日は、cURL ライブラリの強力な機能と柔軟な拡張性について学びました。原文は 3a Tutorial Network から編集されています
。