在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

相关推荐

  • nginx 屏蔽垃圾蜘蛛

    公司制作网站

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

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

    记事本 2022年11月18日
  • PHP导出xls,xlsx表格

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

    2024年12月31日
  • 鼎信通达 FXS模拟网关 配置(FreeSwitch)

    公司制作网站DAG2000-32S是一款多功能语音网关,用于提供模拟话机、传真或者模拟程控交换机PBX到IP语音网关无缝连接。它同时提供RJ11和RJ21接口,满足用户不同场景的布线需求。 而…

    2018年11月18日
  • windows 系统安装 PHP的redis扩展

    公司制作网站因为用windows系统开发PHP网站或应用,有一些需要用到redis,所有需要安装redis,默认是已经安装好了 PHP,首先需要下载redis,下载地址:https://git…

    2023年11月18日
  • 解决windows+nginx下 PHP-CGI 进程崩溃问题

    公司制作网站本地开发系统使用的是windows系统下,配置的 nginx+php,在使用过程中总是出现崩溃现象,网上搜解决办法时,很多网友说是PHP-CGI 进程崩溃 造成的,当 php-cg…

    2023年11月18日
  • ThinkPHP模型事件

    公司制作网站模型事件是指在进行模型的写入操作的时候触发的操作行为,包括模型的save方法和delete方法。 模型事件包括下面几种,分为新增前后、更新前后、写入前后、和删除前后,暂时称4个分组…

    记事本 2023年11月18日
  • 宝塔面板安装nginx/php/mysql

    公司制作网站安装完宝塔面板后,使用生成的用户名密码登录到服务器,首次登录时会出现用户协议,滑到最底下后点击 我已阅读并同意 进入面板 输入宝塔的账号密码进行绑定,如果没有账号点击未有账号,免费…

    2023年11月18日
  • FreeSWITCH 服务器断电后不能通话问题

    公司制作网站FreeSWITCH服务器意外断电导致呼出失败,登录服务器发现日志一片红色警告,虽然我不太懂英文,但是显示的应该是数据库的问题, FreeSWITCH 的默认数据库安装到 /var…

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

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

    2023年11月18日

发表回复

登录后才能评论
WeChat