常用的php方法
/*
* http 封装网络请求方法
*/
/*
* get method
*/
function get($url, $param=array()){
if(!is_array($param)){
throw new Exception("参数必须为array");
}
$p='';
foreach($param as $key => $value){
$p=$p.$key.'='.$value.'&';
}
if(preg_match('/\?[\d\D]+/',$url)){//matched ?c
$p='&'.$p;
}else if(preg_match('/\?$/',$url)){//matched ?$
$p=$p;
}else{
$p='?'.$p;
}
$p=preg_replace('/&$/','',$p);
$url=$url.$p;
//echo $url;
$httph =curl_init($url);
curl_setopt($httph, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($httph, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($httph,CURLOPT_RETURNTRANSFER,1);
curl_setopt($httph, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); curl_setopt($httph, CURLOPT_RETURNTRANSFER,1);
curl_setopt($httph, CURLOPT_HEADER,1);
$rst=curl_exec($httph);
curl_close($httph);
return $rst;
}
/*
* post method
*/
function post($url, $param=array()){
if(!is_array($param)){
throw new Exception("参数必须为array");
}
$httph =curl_init($url);
curl_setopt($httph, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($httph, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($httph,CURLOPT_RETURNTRANSFER,1);
curl_setopt($httph, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
curl_setopt($httph, CURLOPT_POST, 1);//设置为POST方式
curl_setopt($httph, CURLOPT_POSTFIELDS, $param);
curl_setopt($httph, CURLOPT_RETURNTRANSFER,1);
curl_setopt($httph, CURLOPT_HEADER,1);
$rst=curl_exec($httph);
curl_close($httph);
return $rst;
} /**
* PHP发送Json对象数据
*
* @param $url 请求url
* @param $jsonStr 发送的json字符串
* @return array
*/
function http_post_json($url, $jsonStr)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($jsonStr)
)
);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
return array($httpCode, $response);
} /**
* php 获取目录树
*
* @param [string] $path [目录路径]
* @return [array] [目录结构数组]
*/
function dirtree($path) {
$handle = opendir($path);
$itemArray=array();
while (false !== ($file = readdir($handle))) {
if (($file=='.')||($file=='..')){ }elseif (is_dir($path.$file)) {
try {
$dirtmparr=dirtree($path.$file.'/');
} catch (Exception $e) {
$dirtmparr=null;
};
$itemArray[$file]=$dirtmparr;
}else{
array_push($itemArray, $file);
}
}
return $itemArray;
}
不多说,有说明
常用的php方法的更多相关文章
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
- Java常用的输入输出方法
对于经常上机刷题的来说,首先得解决输入输出方法,Java的输入输出流在Java学习过程的后面部分才会接触,但是我们可以掌握一些简单的,常用的输入输出方法 首先输出 大家最熟悉的莫过于输出方法,直接用S ...
- JavaScript常用对象的方法和属性
---恢复内容开始--- 本文将简单介绍JavaScript中一些常用对象的属性和方法,以及几个有用的系统函数. 一.串方法 JavaScript有强大的串处理功能,有了这些串方法,才能编写出丰富多彩 ...
- Document-对象属性和常用的对象方法
Document-对象属性和常用的对象方法 对象属性 document.title //设置文档标题等价于HTML的title标签 document ...
- 干货:结合Scikit-learn介绍几种常用的特征选择方法
原文 http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非 ...
- ios基础篇(四)——UILabel的常用属性及方法
UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...
- (转)在网页中JS函数自动执行常用三种方法
原文:http://blog.sina.com.cn/s/blog_6f6b4c3c0100nxx8.html 在网页中JS函数自动执行常用三种方法 在网页中JS函数自动执行常用三种方法 在HTML中 ...
- 结合Scikit-learn介绍几种常用的特征选择方法
特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减 ...
- sql常用的星期方法
sql常用的星期方法: SELECT convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),120) --本周开始周一SELECT ...
- jquery常用函数与方法汇总
1.delay(duration,[queueName]) 设置一个延时来推迟执行队列中之后的项目. jQuery1.4新增.用于将队列中的函数延时执行.他既可以推迟动画队列的执行,也可以用于自定义队 ...
随机推荐
- Java中创建对象的5种方式总结
引言 作为Java开发人员,我们每天都会代码中创建对象,但我们通常使用依赖管理系统,比如Spring框架,然后,这里有很多种创建对象的方式,本文就对Java创建对象的几种方式进行总结 五种创建方式 创 ...
- java多线程编程:你真的了解线程中断吗?
java.lang.Thread类有一个 interrupt 方法,该方法直接对线程调用.当被interrupt的线程正在sleep或wait时,会抛出 InterruptedException 异常 ...
- hibernate映射对照表
2.3. Basic Types Basic value types usually map a single database column, to a single, non-aggregated ...
- ITMS-90717: 无效的应用程序商店图标
PS导入照片 图像->模式->索引颜色 透明度去掉打勾保存即可
- Yapi部署到kubernetes(k8s)--Azure AKS
背景 找来找去都没找到简单方便的部署yapi到k8s的教程,就自己写了个: 本教程部署的版本是: 1.10.2 部署步骤 克隆仓库: git clone https://github.com/gebi ...
- 没有 Git,如何下载 Gitee 代码?
目录 没有 Git,如何下载 Gitee 代码? 注册 Gitee 账号 下载代码压缩包 没有 Git,如何下载 Gitee 代码? 鉴于看我博客的人很多都是大学本科生.非 CS 专业,大部分人都不会 ...
- 多Github账号指定ssh-key提交代码
问题 目前github中代码提交只能通过ssh方式. 每个github账号只能添加一个专用的ssh-key. 如果同时有多个Github账号在用的话就必须给每个账号绑定不同的ssh-key. 方法一: ...
- Gerrit 大量代码提交流程优化
# Gerrit 大量代码提交流程优化 背景 本文适用于 提交大量初始代码 的场景(仓库版本的早期). 有时候提交大量代码到Gerrit的时候会提示: $ git push Counting obje ...
- Linux内核中的static-key机制
# Linux内核中的static-key机制 背景 在移植某个TP时,发现频繁操作屏幕会导致i2c总线死掉.在跟踪代码的时候,我发现了这个static-key. 因此,学习一下这块的知识. refe ...
- 学习嵌入式为什么要学习uboot
ref:http://www.elecfans.com/d/617674.html 为什么要有BootLoader 背景 很多人学习嵌入式一开始就搞Linux,这样子容易对底层缺少了解. 基础介绍 计 ...