PHPボット

WBOY
WBOYオリジナル
2016-06-23 14:37:061389ブラウズ

インターネット上には PHP BOT プログラムの例はまだほとんどありません。少し前にはビジネス要件でもありましたが、このようなプログラムにアクセスし始めることは非常に興味深いです。いわゆる BOT は、実際には GET または POST をシミュレートして、プログラム上で動作し、自動処理を実装します。もちろん、これは諸刃の剣なので、悪用しないでください。
PHP で BOT を実装する方法はたくさんありますが、個人的には HttpRequest の方がオブジェクト指向が強く、記述が簡単なので気に入っています。以下に、クラスに対応する関数といくつかの例を示します。
関数をクリックして公式 PHP API にアクセスでき、興味のある友人はアクセスして確認できます。メソッド名は非常に直感的であり、多くの説明は必要ありません。 。

例 #1 GET の例

コード

                      <p class="sycode">                          <?      php      $r             =             new       HttpRequest(      '      http://example.com/feed.rss      '      ,       HttpRequest      ::      METH_GET);      $r      ->      setOptions(      array      (      '      lastmodified      '             =>             filemtime      (      '      local.rss      '      )));      $r      ->      addQueryData(      array      (      '      category      '             =>             3      ));      try       {      $r      ->      send();      if       (      $r      ->      getResponseCode()       ==             200      ) {      file_put_contents      (      '      local.rss      '      ,             $r      ->      getResponseBody());}}       catch       (HttpException       $ex      ) {      echo             $ex      ;}      ?>                      </p>

この例では、RSS サブスクライバーをリクエストする get をシミュレートし、QueryData などの GET クエリ パラメーターも追加し、getResponseCode が 200 のときに send を実行してこの GET リクエストを送信します。 BOT が成功すると、get リクエストによって返された応答の html がローカル ファイルに保存されます。

例 #2 POST の例

コード

                      <p class="sycode">                          <?      php      $r             =             new       HttpRequest(      '      http://example.com/form.php      '      ,       HttpRequest      ::      METH_POST);      $r      ->      setOptions(      array      (      '      cookies      '             =>             array      (      '      lang      '             =>             '      de      '      )));      $r      ->      addPostFields(      array      (      '      user      '             =>             '      mike      '      ,             '      pass      '             =>             '      s3c|r3t      '      ));      $r      ->      addPostFile(      '      image      '      ,             '      profile.jpg      '      ,             '      image/jpeg      '      );      try       {      echo             $r      ->      send()      ->      getBody();}       catch       (HttpException       $ex      ) {      echo             $ex      ;}      ?>                      </p>

この例では、PHP ファイルをリクエストする POST をシミュレートしますが、addQueryData などの関数を使用せず、addPostFields Single を介してシミュレートされた入力テーブルを設定します。 send を実行して、POSt リクエストによって返された応答の HTML を現在の PHP ページにエコーします。

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