PHP利用curl发送HTTP请求的实例代码


Posted in PHP onJuly 09, 2020

cURL 函数概述

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。

libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

PHP中使用cURL实现Get和Post请求的方法

这些函数在PHP 4.0.2中被引入。

实例

因为需要在 php 开发中对接其它接口需要用 php curl 去对接其它接口 我把他们封装成函数 希望能对大家有所帮助。

这里面是封装好的会自动把 data 进行转成 json 格式,同时解码成 php 数组输出。

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


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);
}


function puturl($url,$data){
  $data = json_encode($data);
  $ch = curl_init(); //初始化CURL句柄 
  curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //设为TRUE把curl_exec()结果转化为字串,而不是直接输出 
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //设置请求方式
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串
  $output = curl_exec($ch);
  curl_close($ch);
  return json_decode($output,true);
}

function delurl($url,$data){
  $data = json_encode($data);
  $ch = curl_init();
  curl_setopt ($ch,CURLOPT_URL,$put_url);
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE");  
  curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
  $output = curl_exec($ch);
  curl_close($ch);
  $output = json_decode($output,true);
}

function patchurl($url,$data){
  $data = json_encode($data);
  $ch = curl_init();
  curl_setopt ($ch,CURLOPT_URL,$url);
  curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); 
  curl_setopt($ch, CURLOPT_POSTFIELDS,$data);   //20170611修改接口,用/id的方式传递,直接写在url中了
  $output = curl_exec($ch);
  curl_close($ch);
  $output = json_decode($output);
  return $output;
}
?>

以上就是PHP利用curl发送HTTP请求的实例代码的详细内容,更多关于PHP 发送HTTP请求的资料请关注三水点靠木其它相关文章!

PHP 相关文章推荐
坏狼的PHP学习教程之第1天
Jun 15 PHP
dedecms集成财付通支付接口
Dec 28 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
PHP加密解密类实例分析
Apr 20 PHP
浅谈PHP中output_buffering
Jul 13 PHP
PHP概率计算函数汇总
Sep 13 PHP
深入理解PHP JSON数组与对象
Jul 19 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
Windows 下安装 swoole 图文教程(php)
Jun 05 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
Sep 16 PHP
jQuery+PHP实现图片上传并提交功能
Jul 27 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
Jul 08 #PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 #PHP
详解PHP中的8个魔术常量
Jul 06 #PHP
php 利用socket发送GET,POST请求的实例代码
Jul 04 #PHP
PHP实现递归的三种方法
Jul 04 #PHP
laravel开发环境homestead搭建过程详解
Jul 03 #PHP
PHP7原生MySQL数据库操作实现代码
Jul 03 #PHP
You might like
第十节--抽象方法和抽象类
2006/11/16 PHP
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
CodeIgniter视图使用注意事项
2016/01/20 PHP
PHP引用的调用方法分析
2016/04/25 PHP
PHP PDOStatement::fetchObject讲解
2019/02/01 PHP
尽可能写&quot;友好&quot;的&quot;Javascript&quot;代码
2007/01/09 Javascript
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
jQuery手机拨号界面特效代码分享
2015/08/27 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
bootstrap modal+gridview实现弹出框效果
2017/08/15 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[20:57]Ti4主赛事第三天开幕式
2014/07/21 DOTA
Python实现学生成绩管理系统
2020/04/05 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
python构建深度神经网络(DNN)
2018/03/10 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
详解python中的模块及包导入
2019/08/30 Python
如何写python的配置文件
2020/06/07 Python
8种常用的Python工具
2020/08/05 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
大门门卫岗位职责
2013/11/30 职场文书
医院门卫岗位职责
2013/12/30 职场文书
简单租房协议书
2014/04/09 职场文书
护士求职信
2014/07/05 职场文书
教师一帮一活动总结
2014/07/08 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
圆明园观后感
2015/06/03 职场文书