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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP 获取远程文件内容的函数代码
Mar 24 PHP
PHP 获取远程网页内容的代码(fopen,curl已测)
Jun 06 PHP
PHP投票系统防刷票判断流程分析
Feb 04 PHP
解析PHP实现多进程并行执行脚本
Jun 18 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
PHP多线程之内部多线程实例分析
Mar 09 PHP
php实现将字符串按照指定距离进行分割的方法
Mar 14 PHP
PHP获取当前日期和时间及格式化方法参数
May 11 PHP
php中序列化与反序列化详解
Feb 13 PHP
php使用yield对性能提升的测试实例分析
Sep 19 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 cookie 登录验证示例代码
2009/03/16 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
jQuery的deferred对象使用详解
2011/08/20 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
教你如何使用node.js制作代理服务器
2014/11/26 Javascript
jQuery多级弹出菜单插件ZoneMenu
2014/12/18 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
2016/07/06 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
vuex的使用步骤
2021/01/06 Vue.js
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
Python访问纯真IP数据库脚本分享
2015/06/29 Python
Python实现批量将word转html并将html内容发布至网站的方法
2015/07/14 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
Python中 map()函数的用法详解
2018/07/10 Python
python交互界面的退出方法
2019/02/16 Python
Python中按键来获取指定的值
2019/03/02 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
我们是伦敦女孩:WalG
2018/01/08 全球购物
个人合作协议书范本
2014/04/18 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
单位租房协议书样本
2014/10/30 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
小学语文教学随笔
2015/08/14 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书
Python数据类型最全知识总结
2021/05/31 Python