在PHP中 利用 CURL 模拟发送 POST , GET 请求代码

在做淘客程序中,需要获取远程服务器的资源,最初使用的file_get_contents() 函数来获取,因为这个使用比较简单,但是连着请求几次后出现卡顿的情况,百度了一下,获取远程文件时,file_get_contents() 效率不如 CURL 的效率高,所以将原来的 改为使用 file_get_contents() 函数。

CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。可以通过CURL灵活设置不同的HTTP协议参数,并且支持HTTPS。

CURL 执行流程及常用参数

curl_init 初始化一个curl对话

curl_setopt 设置curl参数,即传输选项

curl_exec 执行请求

curl_close 关闭一个curl对话

curl_errno 返回最后一次错误码,php已经定义了诸多错误枚举编码

curl_errror 返回一个保护当前会话最近一次错误的字符串

使用 CURL 发送 GET 请求

在 php 开发中对接其它接口需要用 php curl 去对接其它接口,把他封装成函数,方便使用。这里面是封装好的会自动把 data 数组转成 json 格式,同时解码输出的结果也是自动将 JSON 格式转换为数组格式输出:

function geturl($url){ 
    $headerArray =array("Content-type:application/json;","Accept:application/json"); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); 
    $output = curl_exec($curl); 
    curl_close($curl); 
    $output = json_decode($output,true); 
    return $output; 
}

使用 CURL 发送 POST 请求

function posturl($url,$data){ 
    $data = json_encode($data); 
    $headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json"); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($curl); 
    curl_close($curl); 
    return json_decode($output,true); 
}

原创文章,作者:admin,如若转载,请注明出处:https://ntib.cn/75.html

(0)
adminadmin
上一篇 2018年11月18日 下午10:07
下一篇 2018年11月18日 下午10:10

相关推荐

  • centos 查看哪个目录或文件占用最大的硬盘空间

    碧玺优化是什么意思du -sh. 系统只显示当前文件夹所占用的总空间 du -a. 显示的是所有的文件.包括子文件夹下所有文件也显示.. 某个文件夹的话例如home:du -sh /home/*

    记事本 2018年11月18日
  • nginx/apache 添加跨越请求

    碧玺优化是什么意思现在有很多的网站、系统都使用前后端分离的方式进行开发,有时候使用的不是相同的域名,这样就会存在跨域的问题,我们需要配置nginx或apache 来允许跨域的请求 apache 开启…

    记事本 2023年11月18日
  • mysql 表区分大小写问题

    碧玺优化是什么意思由于开发环境与服务器环境不同,代码上传后出现错误,提示字段不存在,排查后发现表名大小写不同而导致的错误,mysql可以进行配置来达到是否区分大小写。 只需再mysqld下添加一行 …

    记事本 2023年11月18日
  • ThinkPHP 数据迁移使用

    碧玺优化是什么意思ThinkPHP数据库迁移工具可以将数据库结构和数据很容易的在不同的数据库之间管理迁移,使用起来也很方便。 执行后就会在项目根目录多一个database目录自动创建一个文件,就可以…

    2023年11月25日
  • PHP导出xls,xlsx表格

    碧玺优化是什么意思在老旧的项目中使用PHPExcel 导出表格,数据量大一点的时候,服务器就扛不住了,如果您不想使用PhpSpreadsheet进行导出,可以尝试使用 PHP_XLSXWriter,…

    2024年12月31日
  • CentOS7.9升级 OpenSSL OpenSSH

    碧玺优化是什么意思CentOS7.9 默认使用 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips,按下面的步骤可以升级成功,但为验证是否影响其它软件。 安装openssl-1.1…

    记事本 2025年3月26日
  • FastAdmin 下安装使用EasyWeChat

    碧玺优化是什么意思上次介绍了如何在PHP8下运行 FastAdmin,今天在FastAdmin下安装 和使用EasyWeChat,EasyWeChat 是一个开源的 微信 非官方 SDK。安装非常简…

    2023年11月18日
  • 最新Brizy 插件国内不能使用解决办法

    碧玺优化是什么意思Brizy插件是一款适用于WordPress网站的可视化页面构建工具。它提供了一个直观且易于使用的页面编辑器,让用户可以通过拖放方式创建和设计自定义页面,而无需编写任何代码。 不过…

    2024年10月25日
  • FreeSWITCH外呼主叫挂机后,被叫不挂机处理

    碧玺优化是什么意思FreeSWITCH外呼时主叫挂机后,被叫不能自动挂断处理办法 修改 conf/sip_profiles/internal.xml 中的

    记事本 2024年2月20日
  • Mac系统下PhpStorm试用版下载地址

    碧玺优化是什么意思PhpStorm 是 JetBrains 公司开发的一款商业的PHP集成开发工具,旨在提高用户效率,可深刻理解用户的编码,提供智能代码补全,快速导航以及即时错误检查。 Mac系统,…

    2024年3月16日

发表回复

登录后才能评论
WeChat