PHP封装CURL
CURL是一个非常强大的开源库,支持很多协议,包括HTTP、FTP、TELNET等,我们使用它来发送HTTP请求。它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS。CURL可以根据URL前缀是“HTTP” 还是“HTTPS”自动选择是否加密发送内容。
使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:
- 初始化连接句柄;
- 设置CURL选项;
- 执行并获取结果;
- 释放VURL连接句柄。
PHP.ini扩展开启

//使用curl发送请求 第一个参数发送的url地址,第二个参数是否发送post请求,默认是发送get请求,第三个就是请求的参数,第四个参数是否发送https
function curl_request($url, $post=false, $param=[], $https = false)
{
//curl_init 初始化的时候传递url
$ch = curl_init($url);
//curl_setopt 设置一些请求选项,当然get是默认的也是最好处理的
if($post){
//设置请求方式和请求参数,post请求,要设置的类型就是bool型的,那么我们肯定是启用的设置为true,POSTFILEDS是传递的参数,它的第三个参数就是传递的参数可以为一个数组类型的也就是我们的param
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
}
// https请求,默认会进行验证
if($https){
//禁止从服务器端 验证客户端的证书,注意7.10开始默认为开启验证的!!!
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
//curl_exec 执行请求会话(发送请求)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
//curl_close 关闭请求会话
curl_close($ch);
return $res;
}
官网说明:
1、CURLOPT_POST
TRUE 时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种。
2、CURLOPT_POSTFIELDS
操作来发送。要发送文件,在文件名前面加上@前缀并使用完整路径。文件类型可在文件名后以 ';type=mimetype' 的格式指定。这个参数可以是 urlencoded 后的字符串,类似'para1=val1¶2=val2&...',也可以使用一个以字段名为键值,字段数据为值的数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。 从 PHP 5.2.0 开始,使用 @ 前缀传递文件时,value 必须是个数组。 从 PHP 5.5.0 开始, @ 前缀已被废弃,文件可通过 CURLFile 发送。设置 CURLOPT_SAFE_UPLOAD 为 TRUE 可禁用 @ 前缀发送文件,以增加安全性。
3、CURLOPT_SSL_VERIFYPEER
FALSE 禁止 cURL 验证对等证书(peer'scertificate)。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录
如果有什么的不对的地方也请您不吝啬的指出错误!!!!谢谢!!!
PHP封装CURL的更多相关文章
- Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据
当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...
- PHP封装curl的调用接口及常用函数
<?php /** * @desc 封装curl的调用接口,post的请求方式 */ function doCurlPostRequest($url, $requestString, $time ...
- php封装curl,模拟POST和GET请求HTTPS请求
<?php /** * @title 封装代理请求 * @author victor **/ class ApiRequest { /** * curl提交数据 * @param String ...
- PHP——封装Curl请求方法支持POST | DELETE | GET | PUT 等
前言 Curl: https://www.php.net/manual/en/book.curl.php curl_setopt: https://www.php.net/manual/en/fun ...
- 封装curl类,post get方法实现网站请求
<?phpclass RamDemo{ //get方法 function RamGet($url,$arr) { if($arr!=''){ ...
- 封装curl的get和post请求
/** * GET 请求 * @param string $url */ function http_get($url){ $oCurl = curl_init(); if(stripos($url, ...
- curl的封装
首先要搭建一个httpserver,这里採用tomcat6为例: 过程:新建一个Servlet,并使用tomcat的默认port号8080监听,最后写一个jsp来測试能否够訪问该server 1)新建 ...
- 好用的 curl 抓取 页面的封装函数
由于经常使用php curl 抓取页面的内容,在此mark 平时自己封装的 curl函数,(其实 现在也开始用 Python 来爬了~ ^-^) /** * 封装curl方法 * @author Fr ...
- PHP 使用CURL
CURL是一个非常强大的开源库,支持很多协议,包括HTTP.FTP.TELNET等,我们使用它来发送HTTP请求.它给我 们带来的好处是可以通过灵活的选项设置不同的HTTP协议参数,并且支持HTTPS ...
随机推荐
- 【PHP系列】框架的抉择
缘起 在PHP开发中,选择合适的框架有助于加快软件开发,节约宝贵的项目时间,让开发者专注于功能的实现上.框架的问题是需要很多的投入,选择框架时,我们更看重这个框架的未来,存在多年的大型框架必须要有好的 ...
- [acm 1002] 浙大 Fire Net
已转战浙大 题目 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2 浙大acm 1002 #include <iostre ...
- 新鲜出炉的Java开发者中心,约起来!
入门教程.SDK 和工具推荐下载.操作方法指导.API 参考,Java 开发者需要的,这里应有尽有. ▼ 话说现在 Java 开发者在云端进行开发非常火热啊,「云+Java」就好比才子配佳人,真是难以 ...
- ComboBox赋值ItemsSource数据源的时候会触发SelectionChanged改变事件的解决办法
我用的方法是设置开关 bool flag = false;//默认开关关闭(全局变量) flag = false;在赋值数据源之前设置关闭box.ItemsSource = lstProperty;/ ...
- 关于NativeEvent的处理
nativeEvent(const QByteArray &eventType, void *message, long *result){ chASSERT(message != NULL) ...
- kali配置ip,更新源,更新签名
以下是我在简单玩kali时候碰到的一些问题,然后找到的解决办法,能成功解决我当时碰到的问题,如果你有疑问或者碰到不能解决的问题可以在下面评论 ############################# ...
- 在windows平台上构建自己的PHP(php5.3+)
这是一篇翻译的文章,原文参见:https://wiki.php.net/internals/windows/stepbystepbuild 顺便提一句,wiki.php.net有很多精彩的内容,想深入 ...
- swift的动态库
共享可执行文件 iOS 有沙箱机制,不能跨App间共享共态库,但Apple开放了App Extension,可以在App和Extension间共间动态库(这也许是Apple开放动态链接库的唯一原因了) ...
- Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies 【贪心 】
传送门:http://codeforces.com/contest/1082/problem/B B. Vova and Trophies time limit per test 2 seconds ...
- 2019.1.1 在重写的方法上面添加@Override注解方法报错解决办法
报错代码 The method transfer(Integer, Integer, Double) of type AccountServiceImpl must override a superc ...