在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

相关推荐

  • PHP导出xls,xlsx表格

    网站开发制作公司在老旧的项目中使用PHPExcel 导出表格,数据量大一点的时候,服务器就扛不住了,如果您不想使用PhpSpreadsheet进行导出,可以尝试使用 PHP_XLSXWriter,…

    2024年12月31日
  • 麒麟Kylin V10 安装mysql5.7

    网站开发制作公司注意,如果有数据记得先备份 安装 设置启动项 首次登录修改密码,图中箭头指的为默认密码 恢复数据

    2024年6月5日
  • 阿里云composer镜像

    网站开发制作公司阿里云composer镜像与 Packagist 官方实时同步,推荐使用最新的 Composer 版本。所有项目都会使用该镜像地址: 取消配置还原到默认的地址:

    记事本 2023年11月18日
  • 宝塔面板一键迁移网站及数据库

    网站开发制作公司两个服务器间迁移数据太麻烦了,宝塔面板中有宝塔一键迁移插件安装上,注意是在要迁出数据的服务器上安装,安装完成后,在一键迁移插件设置中输入 新服务器的面板地址及面板API密钥。按照提…

    2023年11月18日
  • fastadmin 如何设置新增/编辑弹窗的大小

    网站开发制作公司如果觉得fastadmin 新增和编辑弹窗太小的话,可以再 模块js 文件的 index方法中设置窗口大小 btn-add 是新增的窗口,btn-edit 是编辑是的窗口,data…

    记事本 2023年12月5日
  • 网站分步引导组件Driver.js

    网站开发制作公司在web使用中经常看到分步引导功能,提示你如何操作及功能演示,有很多工具可以实现这种功能。如Driver.js、introjs等, Driver.js 使用MIT Licensed…

    2023年11月18日
  • 阿里云轻量服务器配置及安装宝塔面板

    网站开发制作公司为什么选择轻量服务器? 1、轻量服务器比 ECS 同等服务器会便宜很多,如果是新用户还是可以考虑 ECS 的, 2、带宽大,轻量服务器 限峰值带宽30Mbps ,但是每月又流量限制…

    2023年11月18日
  • CentOS 自动设置指定时间内生成文件的权限

    网站开发制作公司在使用 FreeSWITCH 生成录音文件时,网站访问录音文件时会出现403错误,是因为生成的文件没有权限,可以设置定时任务设置文件的权限,比如,我们自动设置5分钟内的文件或文件夹…

    记事本 2024年2月21日
  • freeswitch 批量生成用户xml文件

    网站开发制作公司时候需要在 FreeSWITCH 中添加大量用户,在 Linux 上,我用以下脚本生成: 上面的脚本会生成 2001 到 2032 的用户配置文件。

    记事本 2022年11月18日
  • git放弃本地修改代码全部使用远程

    网站开发制作公司git强制覆盖:    git fetch –all    git reset –hard origin/master    git pull  git强制覆盖本地命令(单条执行)…

    记事本 2023年11月18日

发表回复

登录后才能评论
WeChat