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 第一节 php简介
Apr 28 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
php使用curl存储cookie的示例
Mar 31 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
PHP实现即时输出、实时输出内容方法
May 27 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
Mar 07 PHP
PHP经典实用正则表达式小结
May 04 PHP
如何修改yii2.0自带的user表为其它的表
Aug 01 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
如何在PHP中使用数组
Jun 09 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加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
jquery()函数的三种语法介绍
2013/10/09 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
DOM 高级编程
2015/05/06 Javascript
浅谈javascript的分号的使用
2015/05/12 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
js, jQuery实现全选、反选功能
2017/03/08 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
laypage.js分页插件使用方法详解
2019/07/27 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
python中解析json格式文件的方法示例
2017/05/03 Python
pandas object格式转float64格式的方法
2018/04/10 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
基于多进程中APScheduler重复运行的解决方法
2019/07/22 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
为什么使用接口?
2014/08/13 面试题
光声世纪笔试题目
2012/08/25 面试题
幼师自荐信
2013/10/26 职场文书
七年级生物教学反思
2014/01/30 职场文书
元旦联欢会策划方案
2014/06/11 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
作息时间调整通知
2015/04/22 职场文书
公司联欢会主持词
2015/07/04 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript