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 相关文章推荐
解析php5配置使用pdo
Jul 03 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP使用PDO操作数据库的乱码问题解决方法
Apr 08 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
PHP使用curl函数发送Post请求的注意事项
Nov 26 PHP
php操作access数据库的方法详解
Feb 22 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 PHP
PHP设计模式之命令模式示例详解
Dec 20 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 17 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
php生成WAP页面
2006/10/09 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
用简洁的jQuery方法toggleClass实现隔行换色
2014/10/22 Javascript
angularjs表格分页功能详解
2016/01/21 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JavaScript实现网页留言板功能
2020/11/23 Javascript
开源Web应用框架Django图文教程
2017/03/09 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
pip命令无法使用的解决方法
2018/06/12 Python
python使用Matplotlib画饼图
2018/09/25 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
python 日志 logging模块详细解析
2020/03/31 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
python解决OpenCV在读取显示图片的时候闪退的问题
2021/02/23 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
Club Monaco加拿大官网:设计师男女服装
2019/09/29 全球购物
欧姆龙医疗保健与医疗产品:Omron Healthcare
2020/02/10 全球购物
司机工作自我鉴定
2014/09/19 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
职工年度考核评语
2014/12/31 职场文书
旷工检讨书1000字
2015/01/01 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis