php自定义函数: 改进升级版curl
<?php
function dcurl($url, $method = 'GET', $postFields = null, $header = null) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ch, CURLOPT_FAILONERROR, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
if (strlen($url) > 5 && strtolower(substr($url, 0, 5)) == "https")
{
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
switch ($method)
{
case 'POST':
curl_setopt($ch, CURLOPT_POST, true);
if (!empty($postFields))
{
if (is_array($postFields) || is_object($postFields))
{
if (is_object($postFields))
$postFields = Tools::object2array($postFields);
$postBodyString = "";
$postMultipart = false;
foreach ($postFields as $k => $v)
{
if ("@" != substr($v, 0, 1))
{ //判断是不是文件上传
$postBodyString .= "$k=" . urlencode($v) . "&";
}
else
{ //文件上传用multipart/form-data,否则用www-form-urlencoded
$postMultipart = true;
}
}
unset($k, $v);
if ($postMultipart)
{
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
}
else
{
curl_setopt($ch, CURLOPT_POSTFIELDS, substr($postBodyString, 0, -1));
}
}
else
{
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
}
}
break;
default:
if (!empty($postFields) && is_array($postFields))
$url .= (strpos($url, '?') === false ? '?' : '&') . http_build_query($postFields);
break;
}
}
?>
;
php自定义函数: 改进升级版curl的更多相关文章
- SQL Server--用户自定义函数
除了使用系统提供的函数外,用户还可以根据需要自定义函数.用户自定义函数是 SQL Server 2000 新增的数据库对象,是 SQL Server 的一大改进.与编程语言中的函数类似,Microso ...
- Sqlserver中存储过程,触发器,自定义函数(一)
Sqlserver中存储过程,触发器,自定义函数 1.存储过程有关内容存储过程的定义:存储过程的分类:存储过程的创建,修改,执行:存储过程中参数的传递,返回与接收:存储过程的返回值:存储过程使用游标. ...
- C语言求x的y次方,自定义函数,自己的算法
我是一名高二中学生,初中时接触电脑,非常酷爱电脑技术,自己百度学习了有两年多了,编程语言也零零散散的学习了一点,想在大学学习计算机专业,所以现在准备系统的学习C语言,并在博客中与大家分享我学习中的心得 ...
- ThinkPHP 3.2 调用自定义函数库
ThinkPHP3.2 和3.1 区别还是有点大的 引入了命名空间,强化了驱动化和行为,增强了模块化的概念和对云平台的支持,并改进了诸多的细节.主要改进包括:模块化架构的全新设计全新命名空间和自动导入 ...
- PHP常用的自定义函数
PHP常用的自定义函数 目录 php常用自定义函数类下载 php 设置字符编码为utf-8 路径格式化(替换双斜线为单斜线) 转码 打印输出 api返回信息 字符串截取 方法一: 方法二: 数组 字符 ...
- java mysql自定义函数UDF之调用c函数
正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. goo ...
- Origin使用自定义函数拟合曲线函数
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2016年10月28日) 最近应该是六叔的物化理论作业要交了吧,很多人问我六叔的作业里面有两道题要怎么进行图像函数的拟合.综 ...
- Mysql - 存储过程/自定义函数
在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...
- Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数
10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...
随机推荐
- IOS下拉放大图片
代码地址如下:http://www.demodashi.com/demo/11623.html 一.实现效果图 现在越来越多的APP中存在下拉放大图片的效果,今天贡献一下我的实现这种方法的原理,和我遇 ...
- iOS开发-drawRect方法小技巧(超短)
获取画布: CGContextRef context = UIGraphicsGetCurrentContext(); 设置颜色的三种方法: [[UIColor blueColor] setStrok ...
- URL中的#号
一.#的涵义 #代表网页中的一个位置.其右面的字符,就是该位置的标识符.比如, http://www.example.com/index.html#print 就代表网页index.html的prin ...
- 如何修改两个PHP版本,php-v和phpinfo两个不同的版本
先查找php.ini find / -name php.ini得出两个ini/usr/local/php/etc/php.ini/etc/php.ini php -i | grep php.ini查看 ...
- Java多线程——不可变对象
不可变对象条件 对象需要满足一下三个条件才是不可变对象: 1.对象创建以后其状态就不能修改 2.对象所有域都是final类型 3.对象是正确创建的(对象在创建期间,this引用没有溢出) 简而言之就是 ...
- C# 网络打印机ESC指令打印小票
public void SendSocketMsg(String ip, int port, int times, byte[] data) { try { byte[] mData; ) { mDa ...
- 142. O(1) Check Power of 2【easy】
142. O(1) Check Power of 2[easy] Using O(1) time to check whether an integer n is a power of 2. Have ...
- Extjs中设置只读的样式问题
废话不多说,直接上代码: view.down('#imageFile').hide(); view.down('#save_button').hide(); view.show(); view.d ...
- JavaScript-4.5 事件大全,事件监听---ShinePans
绑定事件 <input type="bubtton" onclick="javascript:alert('I am clicked');"> 处理 ...
- Data Replication in a Multi-Cloud Environment using Hadoop & Peer-to-Peer technologies
http://fbevmware.blogspot.com/2013/12/data-replication-in-multi-cloud.html 要FQ... —————————————————— ...