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 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムの再起動後にUnixSocketの権限を自動的に設定する方法は? システムの再起動後にUnixSocketの権限を自動的に設定する方法は? Mar 31, 2025 pm 11:54 PM

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

phpstormでCLIモードをデバッグする方法は? phpstormでCLIモードをデバッグする方法は? Apr 01, 2025 pm 02:57 PM

phpstormでCLIモードをデバッグする方法は? PHPStormで開発するときは、PHPをコマンドラインインターフェイス(CLI)モードでデバッグする必要がある場合があります。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

See all articles