検索
ホームページバックエンド開発PHPチュートリアルphpカール学習ノートまとめ_PHPチュートリアル

phpカール学習ノートまとめ_PHPチュートリアル

Jul 13, 2016 pm 05:47 PM
curlgetphppost使用勉強素早いクロールまとめシミュレーションノートウェブページできる聞く

curl を使用すると、Web ページをすばやくキャプチャし、POST リクエストと GET リクエストをシミュレートできます。もちろん、HTTP プロトコルの一部のカプセル化だけでなく、FTP、プロキシ、HTTPS、LDAP などのアプリケーションもサポートします。

Curl は PHP に固有のものではなく、使いやすいものであれば自然に昇格します。最初は JAVA バージョンでしたが、その後 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 ページが表示されます。

$curl =curl_init();

// クロールする必要がある URL を設定します

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

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

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

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

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

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

$data =curl_exec($curl);

// URL リクエストを閉じる

curl_close($curl);

// 取得したデータを表示します

var_dump($data);

2) POST でデータを送信

﹤?php

$phoneNumber = '13912345678';

$message = 'このメッセージはcurlとphpによって生成されました';

$curlPost = 'pNUMBER=' . urlencode($phoneNumber) . '&SUBMIT=Send'

$ch =curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);

$data =curl_exec();

curl_close($ch);

?﹥

3) プロキシサーバー

﹤?php

$ch =curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');

curl_setopt($ch, CURLOPT_HEADER, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);

curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');

curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'ユーザー:パスワード');

$data =curl_exec();

curl_close($ch);

?﹥

4) SSLとCookieについて

HTTPS プロトコルである SSL については、CURLOPT_URL 接続の http:// を https:// に変更するだけです。もちろん、サイトを検証するために設定できる CURLOPT_SSL_VERIFYHOST というパラメーターもあります。

Cookie については、次の 3 つのパラメータを理解する必要があります:

CURLOPT_COOKIE、対面セッション中に Cookie を設定します

CURLOPT_COOKIEJAR、セッション終了時にクッキーを保存します

CURLOPT_COOKIEFILE、クッキー ファイル。

5) HTTPサーバー認証

﹤?php

$ch =curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

curl_setopt(CURLOPT_USERPWD, '[ユーザー名]:[パスワード]')

$data =curl_exec();

curl_close($ch);

?﹥

概要: 後でいくつかの例を添付しますが、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 によって指定された値として使用されます。

次のオプションの値は文字列として扱われます:

www.2cto.com

* 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 関連のバージョン情報を取得します

著者 -274℃

http://www.bkjia.com/PHPjc/478522.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478522.html技術記事 curl を使用すると、Web ページをすばやくキャプチャし、POST リクエストと GET リクエストをシミュレートできます。もちろん、HTTP プロトコルの一部のカプセル化だけでなく、FTP、プロキシ、HTTPS、LDAP などのアプリケーションもサポートします。カールは PHP に固有のものではありません...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションの概念を簡単に説明してください。PHPセッションの概念を簡単に説明してください。Apr 26, 2025 am 12:09 AM

phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPセッションに保存されているすべての値をどのようにループしますか?PHPセッションに保存されているすべての値をどのようにループしますか?Apr 26, 2025 am 12:06 AM

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

ユーザー認証にセッションを使用する方法を説明します。ユーザー認証にセッションを使用する方法を説明します。Apr 26, 2025 am 12:04 AM

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

PHPセッションにユーザーの名前を保存する方法の例を挙げてください。PHPセッションにユーザーの名前を保存する方法の例を挙げてください。Apr 26, 2025 am 12:03 AM

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?PHPセッションを失敗させる可能性のあるいくつかの一般的な問題は何ですか?Apr 25, 2025 am 12:16 AM

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッション関連の問題をどのようにデバッグしますか?PHPでセッション関連の問題をどのようにデバッグしますか?Apr 25, 2025 am 12:12 AM

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()が複数回呼び出されるとどうなりますか?session_start()が複数回呼び出されるとどうなりますか?Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでセッションのライフタイムをどのように構成しますか?PHPでセッションのライフタイムをどのように構成しますか?Apr 25, 2025 am 12:05 AM

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Mac版

SublimeText3 Mac版

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター