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的安全
Oct 09 PHP
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
一个基于phpQuery的php通用采集类分享
Apr 09 PHP
PHP的引用详解
Feb 22 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php foreach如何跳出两层循环(详解)
Nov 05 PHP
php实现简单的权限管理的示例代码
Aug 25 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
详解php curl带有csrf-token验证模拟提交方法
Apr 18 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 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中MD5函数使用实例代码
2008/06/07 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
javascript 对象比较实现代码
2009/04/27 Javascript
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
Angular.Js之Scope作用域的学习教程
2017/04/27 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
2017/11/07 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
js blob类型url的视频下载问题的解决
2019/11/29 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
详解从Django Rest Framework响应中删除空字段
2019/01/11 Python
Python的缺点和劣势分析
2019/11/19 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
学生拾金不昧表扬信
2014/01/21 职场文书
求职简历的自我评价
2014/01/31 职场文书
2014年党支部学习材料
2014/05/19 职场文书
学习雷锋标语
2014/06/25 职场文书
应届生求职自荐信范文
2015/03/04 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS