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 相关文章推荐
从网上搜到的phpwind 0day的代码
Dec 07 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
php中通过Ajax如何实现异步文件上传的代码实例
May 07 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
php笔记之:有规律大文件的读取与写入的分析
Apr 26 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
php中数字0和空值的区别分析
Jun 05 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 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
Yii学习总结之安装配置
2015/02/22 PHP
php中执行系统命令的方法
2015/03/21 PHP
php + WebUploader实现图片批量上传功能
2019/05/06 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
JS编程小常识很有用
2012/11/26 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
2013/05/07 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
Bootstrap和Java分页实例第二篇
2016/12/23 Javascript
jquery+ajax实现省市区三级联动效果简单示例
2017/01/04 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
微信小程序中setInterval的使用方法
2017/09/29 Javascript
jQuery实现判断上传图片类型和大小的方法示例
2018/04/11 jQuery
如何利用node.js开发一个生成逐帧动画的小工具
2019/12/01 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python基础之函数用法实例详解
2014/09/10 Python
python求最大连续子数组的和
2018/07/07 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
python自动生成model文件过程详解
2019/11/02 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
纺织工程专业推荐信
2014/09/08 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
搞笑结婚保证书
2015/05/08 职场文书
七年级写作指导之游记作文
2019/10/07 职场文书