PHP BOT

WBOY
Release: 2016-06-23 14:37:06
Original
1387 people have browsed it

       网上关于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>
Copy after login

这个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>
Copy after login

 

 

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

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template