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仿discuz分页效果代码
Oct 02 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php类常量的使用详解
Jun 08 PHP
php中文验证码实现示例分享
Jan 12 PHP
PHP中实现接收多个name相同但Value不相同表单数据实例
Feb 03 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP使用Nginx实现反向代理
Sep 20 PHP
利用php + Laravel如何实现部署自动化详解
Oct 11 PHP
总结PHP内存释放以及垃圾回收
Mar 29 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 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使用异步调用获取数据时出现(错误c00ce56e导致此项操作无法完成)
2013/07/03 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
将json对象转换为字符串的方法
2014/02/20 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
JavaScript 事件入门知识
2015/04/13 Javascript
js实现HashTable(哈希表)的实例分析
2016/11/21 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Three.js实现绘制字体模型示例代码
2017/09/26 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
Less 安装及基本用法
2018/05/05 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
vue实现搜索过滤效果
2019/05/28 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
django 删除数据库表后重新同步的方法
2018/05/27 Python
python pytest进阶之fixture详解
2019/06/27 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
销售员自我评价怎么写
2013/09/19 职场文书
运动会开幕式邀请函
2014/02/03 职场文书
原材料检验岗位职责
2014/03/15 职场文书
中国梦口号
2014/06/13 职场文书
三八妇女节寄语
2015/02/27 职场文书
《弟子规》读后感:知廉耻、明是非、懂荣辱、辨善恶
2019/12/03 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python