加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘孜站长网 (https://www.0836zz.com.cn/)- 运维、物联设备、数据计算、智能推荐、云管理!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP curl函数的使用示例 模拟curl请求

发布时间:2022-07-29 11:06:44 所属栏目:PHP教程 来源:互联网
导读:PHP curl函数是可以模仿用户进行访问页面了,下面来给各位介绍一下工作中常用的到的PHP curl函数示例. PHP有着很好的curl机制,但是用起来总是不那么的令人满意,因为它需要好几步的操作和,好多难记的参数,这里我将php的curl封装了一下,使它不那么的复杂,代码如
  PHP curl函数是可以模仿用户进行访问页面了,下面来给各位介绍一下工作中常用的到的PHP curl函数示例.
 
  PHP有着很好的curl机制,但是用起来总是不那么的令人满意,因为它需要好几步的操作和,好多难记的参数,这里我将php的curl封装了一下,使它不那么的复杂,代码如下:
 
  <?php
  /**
   * php模拟curl请求
   *
   * @param string $url     请求的url
   * @param string $method  请求的方法, 默认POST
   * @param array  $data    请求传递的数据
   * @param array  $header  请求设置的头信息
   * @param int    $head    是否打印头信息
   * @param int    $body    是否打印body信息
   * @param int    $timeout 设置超时时间
   *
   * @return array
   */
  function curl($url,$method="POST",$data=array(),$header=array(),$head=0,$body=0,$timeout = 30)
  {
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      if (strpos($url, "https") !== false ) {
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
          curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
          if (isset($_SERVER['HTTP_USER_AGENT'])) {
              curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
          }
      }
      if (!emptyempty($header)) {
          curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
      }
      switch ($method) {
      case 'POST':
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
          break;  //开源软件:phpfensi.com
      case 'GET':
          break;
      case 'PUT':
          curl_setopt($ch, CURLOPT_PUT, 1);
          curl_setopt($ch, CURLOPT_INFILE, '');
          curl_setopt($ch, CURLOPT_INFILESIZE, 10);
          break;
      case 'DELETE':
          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
          break;
      default:
          break;
      }
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_HEADER, $head);
      curl_setopt($ch, CURLOPT_NOBODY, $body);
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
      $rtn = curl_exec($ch); //获得返回
      if (curl_errno($ch)) {
          echo 'Errno'.curl_error($ch);//捕抓异常
      }
      curl_close($ch);
      return $rtn;
  }
  ?>

(编辑:甘孜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读