搜索
首页后端开发php教程PHP中如何利用CURL实现GET和POST请求

CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 CURL 库。使用PHP的CURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,CURL 是一个功能强大的PHP库。

PHP建立CURL请求的基本步骤

①:初始化

curl_init()

②:设置属性

curl_setopt().有一长串CURL 参数可供设置,它们能指定URL请求的各个细节。

③:执行并获取结果

curl_exec()

④:释放句柄

curl_close()

CURL实现GET和POST

①:GET方式实现

   //初始化 
      $curl = curl_init(); 
     //设置抓取的url 
     curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); 
      //设置头文件的信息作为数据流输出 
     curl_setopt($curl, CURLOPT_HEADER, 1); 
      //设置获取的信息以文件流的形式返回,而不是直接输出。 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      //执行命令
      $data = curl_exec($curl);
      //关闭URL请求
      curl_close($curl);
      //显示获得的数据
      print_r($data);

②:POST方式实现

  //初始化 
      $curl = curl_init(); 
      //设置抓取的url 
      curl_setopt($curl, CURLOPT_URL, 'http://www.baidu.com'); 
      //设置头文件的信息作为数据流输出 
      curl_setopt($curl, CURLOPT_HEADER, 1); 
      //设置获取的信息以文件流的形式返回,而不是直接输出。 
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
      //设置post方式提交
      curl_setopt($curl, CURLOPT_POST, 1);
      //设置post数据
       $post_data = array(
          "username" => "coder",
          "password" => "12345"
          );
      curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
      //执行命令
      $data = curl_exec($curl);
      //关闭URL请求
      curl_close($curl);
      //显示获得的数据
      print_r($data);

③:如果获得的数据时json格式的,使用json_decode函数解释成数组。

$output_array = json_decode($data,true); //如果第二个参数为true,就转为数组的形式。如果不填就为对象的形式

如果使用json_decode($data)解析的话,将会得到object类型的数据。

我自己封装的一个函数

  //参数1:访问的URL,参数
 :post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies 2  function curl_request($url,$post='',$cookie='', $returnCookie=0){ 
          $curl = curl_init(); 
          curl_setopt($curl, CURLOPT_URL, $url); 
          curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'); 
         curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
          curl_setopt($curl, CURLOPT_AUTOREFERER, 1); 
          curl_setopt($curl, CURLOPT_REFERER, "http://XXX"); 
          if($post) {
             curl_setopt($curl, CURLOPT_POST, 1);
              curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
          }
          if($cookie) {
              curl_setopt($curl, CURLOPT_COOKIE, $cookie);
          }
          curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
          curl_setopt($curl, CURLOPT_TIMEOUT, 10);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
          $data = curl_exec($curl);
          if (curl_errno($curl)) {
              return curl_error($curl);
          }
          curl_close($curl);
          if($returnCookie){
              list($header, $body) = explode("\r\n\r\n", $data, 2);
              preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
              $info['cookie']  = substr($matches[1][0], 1);
              $info['content'] = $body;
              return $info;
          }else{
              return $data;
          }
  }

这俩个函数虽然不难,但是还是值得学习一下的。因为在做接口或者调用的接口的时候,必定会用到这俩个函数。

以上是PHP中如何利用CURL实现GET和POST请求的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
python中CURL和python requests的相互转换如何实现python中CURL和python requests的相互转换如何实现May 03, 2023 pm 12:49 PM

curl和Pythonrequests都是发送HTTP请求的强大工具。虽然curl是一种命令行工具,可让您直接从终端发送请求,但Python的请求库提供了一种更具编程性的方式来从Python代码中发送请求。将curl转换为Pythonrequestscurl命令的基本语法如下所示:curl[OPTIONS]URL将curl命令转换为Python请求时,我们需要将选项和URL转换为Python代码。这是一个示例curlPOST命令:curl-XPOSThttps://example.com/api

浅析php中POST方法带参数跳转页面浅析php中POST方法带参数跳转页面Mar 23, 2023 am 09:15 AM

对于PHP开发者来说,使用POST带参数跳转页面是一项基本技能。POST是HTTP中一种发送数据的方法,它可以通过HTTP请求向服务器提交数据,跳转页面则是在服务器端进行页面的处理和跳转。在实际开发中,我们经常需要使用POST带参数来跳转页面,以达到一定的功能目的。

linux curl是什么linux curl是什么Apr 20, 2023 pm 05:05 PM

在linux中,​curl是一个非常实用的、用来与服务器之间传输数据的工具,是一个利用URL规则在命令行下工作的文件传输工具;它支持文件的上传和下载,是综合传输工具。curl提供了一大堆非常有用的功能,包括代理访问、用户认证、ftp上传下载、HTTP POST、SSL连接、cookie支持、断点续传等等。

php怎么判断post有没有提交php怎么判断post有没有提交Mar 21, 2023 pm 07:12 PM

PHP是一种广泛使用的服务器端脚本语言,它可以用于创建交互式和动态的Web应用程序。在开发PHP应用时,我们通常需要通过表单将用户输入数据提交给服务器端处理。然而,有时候我们需要在PHP中判断是否有表单数据被提交,这篇文章将介绍如何进行这样的判断。

python requests post如何使用python requests post如何使用Apr 29, 2023 pm 04:52 PM

python模拟浏览器发送post请求importrequests格式request.postrequest.post(url,data,json,kwargs)#post请求格式request.get(url,params,kwargs)#对比get请求发送post请求传参分为表单(x-www-form-urlencoded)json(application/json)data参数支持字典格式和字符串格式,字典格式用json.dumps()方法把data转换为合法的json格式字符串次方法需要

java如何发起http请求调用post与get接口java如何发起http请求调用post与get接口May 16, 2023 pm 07:53 PM

一、java调用post接口1、使用URLConnection或者HttpURLConnectionjava自带的,无需下载其他jar包URLConnection方式调用,如果接口响应码被服务端修改则无法接收到返回报文,只能当响应码正确时才能接收到返回publicstaticStringsendPost(Stringurl,Stringparam){OutputStreamWriterout=null;BufferedReaderin=null;StringBuilderresult=newSt

NGINX反向代理对HTML页面的POST请求返回405怎么解决NGINX反向代理对HTML页面的POST请求返回405怎么解决May 22, 2023 pm 07:49 PM

实现如下:server{listen80;listen443ssl;server_namenirvana.test-a.gogen;ssl_certificate/etc/nginx/ssl/nirvana.test-a.gogen.crt;ssl_certificate_key/etc/nginx/ssl/nirvana.test-a.gogen.key;proxy_connect_timeout600;proxy_read_timeout600;proxy_send_timeout600;c

php curl怎么设置cookiephp curl怎么设置cookieSep 26, 2021 am 09:27 AM

php curl设置cookie的方法:1、创建PHP示例文件;2、通过“curl_setopt”函数设置cURL传输选项;3、在CURL中传递cookie即可。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。