PHP BOT

WBOY
Lepaskan: 2016-06-23 14:37:06
asal
1394 orang telah melayarinya

       网上关于PHP BOT程序的实例还是很少的,前段时间也是业务需求,开始接触此类程序,很有意思。所谓BOT实际上是模拟GET或POST,去action一些程序,实现一些自动化处理,当然这个东西是双刃剑,可别使坏就好。
      PHP实现BOT有多种方式,个人比较喜欢HttpRequest,一来比较OO,而来编写简单方便。以下是class对应的function,还有一些examples。
function可以直接点击进入PHP官方的API,有意的朋友进去逛逛;方法名称很直观,不多解释。。

      Example #1 GET example

代码

                      <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>
Salin selepas log masuk

这个example模拟get去请求一个rss订阅器,还addQueryData这样的GET查询参数,然后执行send,发送此GET请求当getResponseCode是200时,也就是BOT成功时,把get请求返回的response的html存入本地的文件中。

Example #2 POST example

代码

                      <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>
Salin selepas log masuk

 

 

这个example模拟POST去请求一个PHP文件,POST不是通过addQueryData这样的function,而是通过addPostFields来设置模拟的输入表单,然后执行send,把POSt请求返回的response的html echo到PHP当前页面中。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan