phpカール学習の概要

Jul 25, 2016 am 09:11 AM

説明:curl を使用して、Web ページをすばやくクロールし、POST、GET リクエストをシミュレートします。もちろん、HTTP プロトコルの一部のカプセル化だけでなく、FTP、プロキシ、HTTPS、LDAP およびその他のアプリケーションもサポートします。 Curl は PHP に固有のものではなく、使いやすいものであれば自然に昇格します。何年も前の log4j と、その後の log4c、log4c++ と同じです。カールに行きます。 Curl はデフォルトでは PHP でサポートされていません。Linux では、PHP をコンパイルするときに ./configure にパラメータ -with-curl を追加することを忘れないでください。 Curl 拡張機能がオンになっているかどうかを確認するには、phpinfo(); を通じて確認できる必要があります。

1) 基本的な使い方 (一般的な呼び出し順序) curl_init: 初期化、 curl_setopt: パラメータオプションを設定します curl_exec: 現在のcurlオブジェクトを実行します。 curl_close: 現在のcurlオブジェクトを閉じます

例: 以下のコードが保存されている PHP Web ページにアクセスすると、126 個のメールボックスの Web ページが表示されます。

  1. $curl =curl_init();

  2. // クロールに必要な URL を設定します

  3. curl_setopt($curl, CURLOPT_URL, 'http:// 126.com');

  4. //ヘッダー情報を表示するかどうかを設定

  5. //curl_setopt($curl, CURLOPT_HEADER, 1);

  6. //結果を文字列に保存するか画面に出力するように cURL パラメーターを設定します。

  7. //curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

  8. // cURL を実行し、Web ページをリクエストします

  9. $data =curl_exec($curl);

  10. < p> // URL を閉じるリクエスト
  11. curl_close($curl);

  12. // 取得したデータを表示

  13. var_dump($data);

コードをコピー

2) POST 経由でデータを送信

    ﹤?php
  1. $phoneNumber = '13912345678';
  2. $message = 'このメッセージはcurlとphpによって生成されました';
  3. $curlPost = 'pNUMBER=' '&MESSAGE= ' . urlencode($message) . '&SUBMIT=Send';
  4. $ch =curl_init();
  5. curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
  6. curl_setopt( $ch, CURLOPT_HEADER, 1);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_POST, 1);
  9. curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
  10. $data =curl_exec($ch );
  11. curl_close($ch);
  12. ?﹥
コードをコピー

3) プロキシサーバー

    ﹤?php
  1. $ch =curl_init();
  2. curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
  3. curl_setopt($ch, CURLOPT_HEADER, 1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
  6. curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
  7. curl_setopt($ch, CURLOPT_PROXYUSERPWD, ' ユーザー:パスワード');
  8. $data =curl_exec($ch);
  9. curl_close($ch);
  10. ?﹥
コードをコピー

4) SSL と Cookie について HTTPS プロトコルである SSL については、CURLOPT_URL 接続の http:// を https:// に変更するだけです。もちろん、サイトを検証するために設定できる CURLOPT_SSL_VERIFYHOST というパラメーターもあります。 Cookie に関しては、次の 3 つのパラメータを理解する必要があります。 CURLOPT_COOKIE、対面セッション中に Cookie を設定します CURLOPT_COOKIEJAR、セッション終了時に Cookie を保存します。 CURLOPT_COOKIEFILE、クッキー ファイル。

5) HTTPサーバー認証

  1. ﹤?php

  2. $ch =curl_init();
  3. curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
  4. curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
  6. curl_setopt(CURLOPT_USERPWD, '[ユーザー名]:[パスワード]')

  7. $data =curl_exec($ch) ;

  8. curl_close($ch);
  9. ?﹥

コードをコピー

概要: 後でいくつかの例を添付しますが、curl_setopt 関数が状況に応じて異なることを除いて、シーケンスは実際には最初の例と同じです。また、この関数には多くのパラメーターがあり、非常に柔軟であることもわかりました。

この関数の次のパラメータ: boolcurl_setopt (int ch、文字列オプション、混合値) curl_setopt() 関数は、CURL セッションのオプションを設定します。 option パラメータは必要な設定であり、value はこのオプションで指定される値です。

次のオプションの値は、long 整数として使用されます (オプション パラメーターで指定)。 * CURLOPT_INFILESIZE: ファイルをリモート サイトにアップロードするとき、このオプションはアップロードするファイルのサイズを PHP に伝えます。 * CURLOPT_VERBOSE: CURL にすべての予期しないイベントを報告させたい場合は、このオプションをゼロ以外の値に設定します。 * CURLOPT_HEADER: 出力にヘッダーを含める場合は、このオプションをゼロ以外の値に設定します。 * CURLOPT_NOPROGRESS: PHP に CURL 転送の進行状況バーを表示させたくない場合は、このオプションをゼロ以外の値に設定します。注: PHP はこのオプションをゼロ以外の値に自動的に設定します。このオプションはデバッグ目的でのみ変更してください。 * CURLOPT_NOBODY: 出力に本文部分を含めたくない場合は、このオプションをゼロ以外の値に設定します。 * CURLOPT_FAILONERROR: エラーが発生したときに PHP を表示しないようにする場合 (HTTP コードが 300 以上を返す場合)、このオプションをゼロ以外の値に設定します。デフォルトの動作では、通常のページが返され、コードは無視されます。 * CURLOPT_UPLOAD: PHP にアップロードの準備をさせたい場合は、このオプションをゼロ以外の値に設定します。 * CURLOPT_POST: PHP に通常の HTTP POST を実行させたい場合は、このオプションをゼロ以外の値に設定します。この POST は通常の application/x-www-from-urlencoded タイプで、主に HTML フォームで使用されます。 * CURLOPT_FTPLISTONLY: このオプションをゼロ以外の値に設定すると、PHP は FTP ディレクトリ名のリストを表示します。 * CURLOPT_FTPAPPEND: このオプションをゼロ以外の値に設定すると、PHP はリモート ファイルを上書きせずに適用します。 * CURLOPT_NETRC: このオプションをゼロ以外の値に設定すると、PHP は ~./netrc ファイル内で接続先のリモート サイトのユーザー名とパスワードを検索します。 * CURLOPT_FOLLOWLOCATION: このオプションをゼロ以外のヘッダー ("Location: " など) に設定すると、サーバーはそれを HTTP ヘッダーの一部として送信します (これは再帰的であることに注意してください。PHP は "Location: " のようなヘッダーを送信します)。 * CURLOPT_PUT: HTTP を使用してファイルをアップロードするには、このオプションをゼロ以外の値に設定します。このファイルをアップロードするには、CURLOPT_INFILE および CURLOPT_INFILESIZE オプションを設定する必要があります。 * CURLOPT_MUTE: このオプションをゼロ以外の値に設定すると、PHP は CURL 関数に対して完全にサイレントになります。 * CURLOPT_TIMEOUT: 最大秒数を長整数で設定します。 * CURLOPT_LOW_SPEED_LIMIT: 送信されるバイト数を制御する長整数を設定します。 * CURLOPT_LOW_SPEED_TIME: CURLOPT_LOW_SPEED_LIMIT で指定されたバイト数を送信する秒数を制御する長整数を設定します。 * CURLOPT_RESUME_FROM: バイト オフセット アドレス (転送先の開始フォーム) を含む長いパラメーターを渡します。 * CURLOPT_SSLVERSION: SSL バージョンを含む長いパラメータを渡します。デフォルトでは、PHP は独自のハードワークを実行しますが、セキュリティを強化するには手動で設定する必要があります。 * CURLOPT_TIMECONDITION: 長いパラメータを渡して、CURLOPT_TIMEVALUE パラメータの処理方法を指定します。このパラメータは TIMECOND_IFMODSINCE または TIMECOND_ISUNMODSINCE に設定できます。これはHTTPのみの場合です。 * CURLOPT_TIMEVALUE: 1970 年 1 月 1 日から現在までの秒数を渡します。この時間は、CURLOPT_TIMEVALUE オプション、またはデフォルトの TIMECOND_IFMODSINCE によって指定された値として使用されます。

次のオプションの値は文字列として扱われます: * CURLOPT_URL: これは、PHP を使用して取得する URL アドレスです。このオプションは、curl_init() 関数を使用した初期化中に設定することもできます。 * CURLOPT_USERPWD: [ユーザー名]:[パスワード] の形式で文字列を渡し、PHP を使用して接続します。 * CURLOPT_PROXYUSERPWD: [ユーザー名]:[パスワード] の形式で文字列を渡し、HTTP プロキシに接続します。 * CURLOPT_RANGE: 指定したい範囲を渡します。 X または Y を除いた「X-Y」形式である必要があります。 HTTP 転送では、カンマ (X-Y、N-M) で区切られた複数の間隔もサポートされます。 * CURLOPT_POSTFIELDS: すべてのデータを含む文字列を HTTP "POST" 操作として渡します。 * CURLOPT_REFERER: HTTP リクエスト内の「リファラー」ヘッダーを含む文字列。 * CURLOPT_USERAGENT: HTTP リクエスト内の「user-agent」ヘッダーを含む文字列。 * CURLOPT_FTPPORT: ftpの「POST」コマンドで使用するIPアドレスを含むIPアドレスを渡します。この POST 命令は、指定した IP アドレスに接続するようにリモート サーバーに指示します。この文字列には、IP アドレス、ホスト名、ネットワーク インターフェイス名 (UNIX の場合)、または「-」 (システムのデフォルトの IP アドレスを使用) を指定できます。 * CURLOPT_COOKIE: HTTP Cookie を含むヘッダー接続を渡します。 * CURLOPT_SSLCERT: 証明書を含む文字列を PEM 形式で渡します。 * CURLOPT_SSLCERTPASSWD: CURLOPT_SSLCERT 証明書を使用するために必要なパスワードを含むパスワードを渡します。 * CURLOPT_COOKIEFILE: Cookie データを含むファイルの名前を含む文字列を渡します。この Cookie ファイルは、Netscape 形式であることも、ファイルに保存されている HTTP スタイルのヘッダーのスタックであることもできます。 ※ CURLOPT_CUSTOMREQUEST: HTTP リクエストを行う際に、GET または HEAD で使用する文字を渡します。 HTTP リクエストを実行するときに GET または HEAD の代わりに使用される文字列を渡します。これは、HTTP リクエストを実行する場合や、よりわかりにくい別の HTTP リクエストを実行する場合に便利です。次のオプションには、ファイルの説明 (fopen() 関数を使用して取得) が必要です。 * CURLOPT_FILE: このファイルは、配置して送信する出力ファイルになります。デフォルトは STDOUT です。 * CURLOPT_INFILE: このファイルは、送信した入力ファイルです。 * CURLOPT_WRITEHEADER: このファイルには出力のヘッダー部分が含まれます。 * CURLOPT_STDERR: このファイルには、stderr の代わりにエラーが書き込まれています。ログインが必要なページを取得する例は、現在の方法では、毎回ログインする必要がある人が改善します。

よく使用される機能: curl_close — CURL セッションを閉じる curl_copy_handle — Curl 接続リソースのすべての内容とパラメータをコピーする curl_errno — 現在のセッションのエラー情報を含む数値を返します。 curl_error — 現在のセッションのエラー情報を含む文字列を返します。 curl_exec — Curl セッションを実行する curl_getinfo — CURL 接続リソース ハンドルに関する情報を取得する curl_init — Curl セッションを初期化する curl_multi_add_handle — 個々の CURL ハンドル リソースを CURL バッチ セッションに追加する curl_multi_close — バッチ ハンドル リソースを閉じる curl_multi_exec — Curl バッチ ハンドルを解析する curl_multi_getcontent — フェッチされた出力のテキスト ストリームを返す curl_multi_info_read — 現在解析されているcurlの関連する送信情報を取得します。 curl_multi_init — Curl バッチ ハンドル リソースを初期化する curl_multi_remove_handle — Curl バッチ ハンドル リソース内のハンドル リソースを削除する curl_multi_select — cURL 拡張子に関連付けられたすべてのソケットを取得し、「選択」できます。 curl_setopt_array — Curl のセッション パラメータを配列として設定する curl_setopt —curl のセッションパラメータを設定する curl_version —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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 Apr 08, 2025 am 12:03 AM

PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP OOPで、self ::、parent ::、and static ::の違いを説明します。 PHP OOPで、self ::、parent ::、and static ::の違いを説明します。 Apr 09, 2025 am 12:04 AM

Phpoopでは、self ::は現在のクラスを指し、親::は親クラスを指し、静的::は後期静的結合に使用されます。 1.Self ::静的方法と一定の呼び出しに使用されますが、後期静的結合をサポートしていません。 2.Parent ::サブクラスには、親クラスのメソッドを呼び出すために使用され、プライベートメソッドにアクセスできません。 3.Static ::継承と多型に適した後期静的結合をサポートしますが、コードの読みやすさに影響を与える可能性があります。

PHPは、ファイルを安全に処理する方法をどのように処理しますか? PHPは、ファイルを安全に処理する方法をどのように処理しますか? Apr 10, 2025 am 09:37 AM

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

See all articles