ホームページ バックエンド開発 PHPチュートリアル [Jie Ge が PHP について簡単に語る] 第 16 章 - ファイル転送ツール cURL の高度な使用法

[Jie Ge が PHP について簡単に語る] 第 16 章 - ファイル転送ツール cURL の高度な使用法

Jun 13, 2016 pm 01:21 PM
curl gt post quot

[Jie Ge が簡単に PHP について語る] 第 16 弾 --- ファイル転送ツール cURL の高度な応用
上記の内容の続きを見てみましょう。 上記は、curl In の使い方を簡単に紹介したものです。この記事では、curl の高度なアプリケーションを 4 つのステップで説明します。

リクエストの関連情報を取得するには、curl の実行が完了した後、curl_getinfo() を使用します。

  1. // 新しい cURL リソースを作成します
  2. $ch =curl_init("http://www.lampbrother.net");
  3. // URL と対応するオプションを設定します
  4. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  5. // エラーがあるかどうかを確認します
  6. if(!curl_errno($ch))
  7. {
  8. $info =curl_getinfo($ch);
  9. var_dump($info);
  10. }
  11. // URL を取得してブラウザに渡します
  12. $html =curl_exec($ch);
  13. //cURL リソースを閉じ、システム リソースを解放します
  14. curl_close($ch);
  15. ?>

    打印出来的内容为:

    array
    'url' => string 'http://www.lampbrother.net' (length=26)
    'content_type' => null
    'http_code' => int 0
    'header_size' => int 0
    'request_size' => int 0
    'filetime' => int 0
    'ssl_verify_result' => int 0
    'redirect_count' => int 0
    'total_time' => float 0
    'namelookup_time' => float 0
    'connect_time' => float 0
    'pretransfer_time' => float 0
    'size_upload' => float 0
    'size_download' => float 0
    'speed_download' => float 0
    'speed_upload' => float 0
    'download_content_length' => float -1
    'upload_content_length' => float -1
    'starttransfer_time' => float 0
    'redirect_time' => float 0
    'certinfo' =>array

    'redirect_url' => 文字列 '' (長さ=0)

    返された配列には次の情報が含まれます:
    "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" //リダイレクト時間の消費

    curl を使用して、POST モードでデータを送信するブラウザをシミュレートすることもできます:

    まず、POST データを印刷できるページを作成しましょう:
  1. var_dump($_POST);
  2. ?>
POST データを送信するブラウザをシミュレートする新しいページを作成します:
  1. $url = "http://localhost/post.php";
  2. $post_data = 配列(
  3. "著者"=>"李潔",
  4. "タイトル"=>"李傑が PHP について語る"
  5. );
  6. //初期化、新しい cURL リソースを作成します
  7. $ch =curl_init();
  8. //URL と対応するオプションを設定します
  9. curl_setopt($ch,CURLOPT_URL,$url);
  10. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  11. curl_setopt($ch,CURLOPT_POST,1);
  12. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
  13. //URL を取得してブラウザに渡します
  14. $out =curl_exec( $ch );
  15. //cURL リソースを閉じ、システム リソースを解放します
  16. curl_close($ch);
  17. echo $output ;
  18. ?>
    印刷結果:

    配列
    '作成者' => 文字列 '李潔' (長さ=4)
    'タイトル' => 文字列 'Jie Ge が PHP について語ります' (length=11)


    強力なカールが投稿データの受け渡しに役立っていることがわかります。

    1. 投稿データを post.php ページに渡します
    2.post.php ページには、
    ページに出力された投稿データが表示されます 3.curlはpost.phpで受け取って出力した投稿データを取得してページ上に出力します!

    post を使用してデータを転送できるだけでなく、ファイルをアップロードすることもできます。方法は基本的に同じです。


    curl.php
  1. $url = "http://localhost/upload.php";
  2. $post_data = array(
  3. "title"=> ;"すごい!!!",
  4. "pic"=>"@d: リー・ウェンカイの美しいヌード写真.jpg"
  5. );
  6. //初期化、新しい cURL リソースを作成します
  7. $ch =curl_init();
  8. //URL と対応するオプションを設定します
  9. curl_setopt($ch,CURLOPT_URL,$url);
  10. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  11. curl_setopt($ch,CURLOPT_POST,1);
  12. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
  13. // URL を取得してブラウザに渡します
  14. $out =curl_exec($ch);
  15. //cURL リソースを閉じ、システム リソースを解放します
  16. curl_close($ch);
  17. echo $output;
  18. ?>

upload.php
  1. var_dump($_FILES);
  2. ?>

    返される値:

    配列
    'pic' =>配列
    'name' => 文字列 'Li Wenkai の美しいヌード写真.jpg' (長さ=18)
    'type' => 文字列 'application/octet-stream' (長さ=24)
    'tmp_name' => 文字列 'F:LAMPBrotherEnvironmentalwamp_32tmpphp9A73.tmp' (長さ=52)
    'エラー' => int 0
    'サイズ' => int 0
  1. $post_data = array(
  2. "title"=>"Amazing!!!",
  3. "pic"=>"@d: 李文凱の美しいヌード写真.jpg "
  4. );

アップロードする際の注意点は、アップロードするファイル名の前に@記号を付ける必要があることです!

cURL バッチ処理:

cURL には、複数の URL 接続を同期または非同期で処理できる高度なアプリケーションであるバッチ ハンドラーもあります:
  1. // cURL リソースのペアを作成します
  2. $ch1 =curl_init();
  3. $ch2 =curl_init ( );
  4. // URL と対応するオプションを設定します
  5. curl_setopt($ch1, CURLOPT_URL, "http://www.li-jie.me/") ;
  6. curl_setopt($ch1, CURLOPT_HEADER, 0);
  7. curl_setopt($ch2, CURLOPT_URL, "http://www.lampbrother.net/");
  8. curl_setopt($ch2, CURLOPT_HEADER, 0);
  9. // バッチ cURL ハンドルを作成します
  10. $mh =curl_multi_init();
  11. //ハンドルを 2 つ追加します
  12. curl_multi_add_handle($mh,$ch1);
  13. curl_multi_add_handle($mh,$ch2);
  14. $running=null;
  15. //実行バッチハンドル
  16. do {
  17. usleep(10000);
  18. curl_multi_exec($mh,$ running);
  19. } while ($running > 0);
  20. // すべてのハンドルを閉じる
  21. curl_multi_remove_handle($mh, $ch1) ;
  22. curl_multi_remove_handle($mh, $ch2);
  23. curl_multi_close($mh);
  24. ?>

$running は、http://www.li-jie.me と http://www.lampbrother.net からページ コンテンツを収集し、複数の URL のバッチ処理を実装します。

ご覧のとおり、将来的には、コレクション Web サイトでは file_get_contents と fopen を廃止する必要があります。Web アプリケーションに多くの色を追加する強力な cURL を使用してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 PythonでCURLリクエストとPythonリクエストの相互変換を実現する方法 May 03, 2023 pm 12:49 PM

curl と Pythonrequests は両方とも、HTTP リクエストを送信するための強力なツールです。 curl はターミナルから直接リクエストを送信できるコマンドライン ツールですが、Python のリクエスト ライブラリは、Python コードからリクエストを送信するためのよりプログラム的な方法を提供します。 curl を Pythonrequestscurl コマンドに変換するための基本的な構文は次のとおりです。curl[OPTIONS]URLcurl コマンドを Python リクエストに変換する場合、オプションと URL を Python コードに変換する必要があります。これは、curlPOST コマンドの例です:curl-XPOST https://example.com/api

Linux での CURL バージョンの更新に関するチュートリアル! Linux での CURL バージョンの更新に関するチュートリアル! Mar 07, 2024 am 08:30 AM

Linux でカールのバージョンを更新するには、以下の手順に従います。 現在のカールのバージョンを確認します。 まず、現在のシステムにインストールされているカールのバージョンを確認する必要があります。ターミナルを開き、次のコマンドを実行します。curl --version このコマンドは、現在のcurlバージョン情報を表示します。利用可能なcurlのバージョンを確認する:curlを更新する前に、利用可能な最新バージョンを確認する必要があります。 Curl の公式 Web サイト (curl.haxx.se) または関連ソフトウェア ソースにアクセスして、curl の最新バージョンを見つけることができます。 Curl ソース コードをダウンロードする:curl またはブラウザを使用して、選択した CURL バージョンのソース コード ファイル (通常は .tar.gz または .tar.bz2) をダウンロードします。

PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 Jul 08, 2023 pm 09:13 PM

PHP8.1 リリース: 複数リクエストの同時処理のためのcurlの導入 最近、PHPは最新バージョンのPHP8.1を正式にリリースし、重要な機能である複数リクエストの同時処理のためのcurlを導入しました。この新機能により、開発者は複数の HTTP リクエストをより効率的かつ柔軟に処理できるようになり、パフォーマンスとユーザー エクスペリエンスが大幅に向上します。以前のバージョンでは、複数のリクエストを処理するには、多くの場合、複数の CURL リソースを作成し、ループを使用してデータをそれぞれ送受信する必要がありました。この方法でも目的は達成できますが、

最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 最初から最後まで: PHP 拡張機能 cURL を使用して HTTP リクエストを行う方法 Jul 29, 2023 pm 05:07 PM

最初から最後まで: HTTP リクエストに php 拡張機能 cURL を使用する方法 はじめに: Web 開発では、多くの場合、サードパーティ API または他のリモート サーバーと通信する必要があります。 cURL を使用して HTTP リクエストを行うのは、一般的で強力な方法です。この記事では、PHP を使用して cURL を拡張して HTTP リクエストを実行する方法を紹介し、いくつかの実用的なコード例を示します。 1. 準備 まず、php に cURL 拡張機能がインストールされていることを確認します。コマンドラインで php-m|grepcurl を実行して確認できます。

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHP Curl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? Mar 08, 2024 am 11:36 AM

PHPCurl で Web ページの 301 リダイレクトを処理するにはどうすればよいですか? PHPCurl を使用してネットワーク リクエストを送信すると、Web ページから返される 301 ステータス コードが頻繁に発生します。これは、ページが永続的にリダイレクトされたことを示します。この状況を正しく処理するには、いくつかの特定のオプションと処理ロジックを Curl リクエストに追加する必要があります。以下では、PHPCurl で Web ページの 301 リダイレクトを処理する方法を詳しく紹介し、具体的なコード例を示します。 301 リダイレクトの処理原則 301 リダイレクトとは、サーバーが 30 を返すことを意味します。

ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 ページにジャンプするパラメータを含む PHP の POST メソッドの簡単な分析 Mar 23, 2023 am 09:15 AM

PHP 開発者にとって、POST を使用してパラメータのあるページにジャンプすることは基本的なスキルです。 POST は HTTP でデータを送信する方法で、HTTP リクエストを通じてサーバーにデータを送信できます。ジャンプ ページはサーバー側でページを処理してジャンプします。実際の開発では、特定の機能上の目的を達成するために、パラメーターを指定して POST を使用してページにジャンプする必要があることがよくあります。

See all articles