php的curl,uploadfile上传文件,xml解析,邮件发送,动态时间,去重,等
2017-06-23 13:08
591 查看
/**
* 请求接口返回内容
* @param string url [请求的URL地址]
* @param string params [请求的参数]
* @param int ipost [是否采用POST形式]
* @return string
*/
function curl(url,params=false,ispost=0){
httpInfo = array();
ch = curl_init();
/*
* 文件、图片、视频的上传
* name:上传文件的名字
* maxSize:允许的最大内存3M
* type:类型,默认为图片
*/
function uploadFile(name,maxSzie=3145728,type = 0){
switch (type){
case 0:
arr = array(‘jpg’,’jpeg’,’gif’,’png’,’bmp’);
break;
case 1:
arr = array(‘mp3’,’ogg’);
break;
case 2:
arr = array(‘mp4’,’rmvb’,’3gp’,’avi’);
break;
}
if(is_array(_FILES[name][‘size’])){
file_name_arr = _FILES[name][‘name’];
file_size_arr = _FILES[name][‘size’];
file_obj_arr = _FILES[name][‘tmp_name’];
path_arr = array();
foreach(file_name_arr as key => val){
if(!val) continue;
name_arr = explode(‘.’, file_name_arr[key]);
lastName = end(name_arr);
if(in_array(lastName, arr) && file_size_arr[key] < maxSzie){
savename = UPLOAD_PATH.uniqid().’.’.lastName;
if(move_uploaded_file(file_obj_arr[key], savename)){
array_push(path_arr, savename);
}else{
return false;
}
}else{
return false;
}
}
return path_arr;
}else{
file_name = _FILES[name][‘name’];
file_size = _FILES[name][‘size’];
file_obj = _FILES[name][‘tmp_name’];
arr_name = explode(‘.’, $file_name);
lastName = end(arr_name);
if(in_array(lastName,arr) && file_size < maxSzie){
savename = UPLOAD_PATH.uniqid().’.’.lastName;
if(move_uploaded_file(file_obj, savename)){
return savename;
}else{
return false;
}
}else{
return false;
}
}
}
/*
* 创建XML
* parentNode:根目录的名字
* arr:XML的内容
*/
function xml_encode(parentNode,arr){
xml = new DOMDocument(‘1.0.0’, ‘utf-8’);
parentNode_obj = xml ->createElement(parentNode);
parentNode_obj = xml -> appendChild(parentNode_obj);
}
/*
* 解析XML
* str:需要解析的XML的内容字符串∗key:想要解析出的键
*/
function xml_decode(str,key){
xml_obj = simplexml_load_string(str);
xml_obj = (array)xml_obj;
}
/*
* 发送邮件验证
* to:要发送的地址
* subject:邮件主题
* body:邮件内容
*
*/
//require ‘PHPMailer/PHPMailerAutoload.php’;
class SendMailer{
function __construct(to,subject,body){
mail = new PHPMailer();
mail -> isSMTP();
mail -> CharSet=’UTF-8’; //设置邮件的字符编码,这很重要,不然中文乱码
mail -> SMTPAuth = true; //开启认证
mail -> Port = 25; //邮箱服务的端口默认为25
mail -> Host = “smtp.126.com”;
mail -> Username = ‘jinzhigang_hi@126.com’; // SMTP username
$mail -> Password = ‘King0514’;
}
/*
* 动态时间
* time:动态发布的时间
*/
function trends_time(time){
//判断传入的参数是字符串还是数字,若是字符串则转换为数字类型
time=is_string(time)?strtotime(time):time;
//将传入的时间参数赋予一个变量保存下来
_time=time;
}
/*
* 解析JSON
* str:解析的Json字符串
* key:想要获得的键
*/
function decode_json(str,key){
json = (array)json_decode(str);
return json[key];
}
/*
* 获得文件的工程路径(目录)
* dir:文件名
*/
function scan_dir(dir){
if (handle = opendir(dir)){
arr = array();
while (file = readdir(handle)){
if (file != ‘.’&& file!=’..’){
if (is_dir(dir.’/’.file)){
arr[file] = scan_dir(dir.’/’.file);
}else {
arr[] = file;
}
}
}
}
/*
* 去重
* arr:想要处理的数组或字符串
*/
function uniqid_array(arr){
if(!is_array(arr)){
return false;
}
foreach(arr as key => val){
foreach(arr as k => v){
if(key === k){
continue;
}
}
* 请求接口返回内容
* @param string url [请求的URL地址]
* @param string params [请求的参数]
* @param int ipost [是否采用POST形式]
* @return string
*/
function curl(url,params=false,ispost=0){
httpInfo = array();
ch = curl_init();
curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 ); curl_setopt( $ch, CURLOPT_USERAGENT , 'JuheData' ); curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 ); curl_setopt( $ch, CURLOPT_TIMEOUT , 60); curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true ); curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false); if( $ispost ) { curl_setopt( $ch , CURLOPT_POST , true ); curl_setopt( $ch , CURLOPT_POSTFIELDS , $params ); curl_setopt( $ch , CURLOPT_URL , $url ); } else { if($params){ curl_setopt( $ch , CURLOPT_URL , $url.'?'.$params ); }else{ curl_setopt( $ch , CURLOPT_URL , $url); } } $response = curl_exec( $ch ); if ($response === FALSE) { // $this -> ajaxReturn(array('status' => 0,'info' => '网络错误,请重试','url' =>'')); return false; } $httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE ); $httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) ); curl_close( $ch ); return $response; }
/*
* 文件、图片、视频的上传
* name:上传文件的名字
* maxSize:允许的最大内存3M
* type:类型,默认为图片
*/
function uploadFile(name,maxSzie=3145728,type = 0){
switch (type){
case 0:
arr = array(‘jpg’,’jpeg’,’gif’,’png’,’bmp’);
break;
case 1:
arr = array(‘mp3’,’ogg’);
break;
case 2:
arr = array(‘mp4’,’rmvb’,’3gp’,’avi’);
break;
}
if(is_array(_FILES[name][‘size’])){
file_name_arr = _FILES[name][‘name’];
file_size_arr = _FILES[name][‘size’];
file_obj_arr = _FILES[name][‘tmp_name’];
path_arr = array();
foreach(file_name_arr as key => val){
if(!val) continue;
name_arr = explode(‘.’, file_name_arr[key]);
lastName = end(name_arr);
if(in_array(lastName, arr) && file_size_arr[key] < maxSzie){
savename = UPLOAD_PATH.uniqid().’.’.lastName;
if(move_uploaded_file(file_obj_arr[key], savename)){
array_push(path_arr, savename);
}else{
return false;
}
}else{
return false;
}
}
return path_arr;
}else{
file_name = _FILES[name][‘name’];
file_size = _FILES[name][‘size’];
file_obj = _FILES[name][‘tmp_name’];
arr_name = explode(‘.’, $file_name);
lastName = end(arr_name);
if(in_array(lastName,arr) && file_size < maxSzie){
savename = UPLOAD_PATH.uniqid().’.’.lastName;
if(move_uploaded_file(file_obj, savename)){
return savename;
}else{
return false;
}
}else{
return false;
}
}
}
/*
* 创建XML
* parentNode:根目录的名字
* arr:XML的内容
*/
function xml_encode(parentNode,arr){
xml = new DOMDocument(‘1.0.0’, ‘utf-8’);
parentNode_obj = xml ->createElement(parentNode);
parentNode_obj = xml -> appendChild(parentNode_obj);
foreach($arr as $key => $val){ $obj = $xml -> createElement($key,$val); $parentNode_obj -> appendChild($obj); } $str = $xml -> saveXML(); if($parentNode == 'xml'){ $arr = explode('?>', $str); return end($arr); } return $str;
}
/*
* 解析XML
* str:需要解析的XML的内容字符串∗key:想要解析出的键
*/
function xml_decode(str,key){
xml_obj = simplexml_load_string(str);
xml_obj = (array)xml_obj;
if(is_string($key)){ $params = $xml_obj[$key]; return (string)$params; }else{ $arr = array(); foreach ($key as $v){ $params = $xml_obj[$v]; array_push($arr,(string)$params); } return $arr; }
}
/*
* 发送邮件验证
* to:要发送的地址
* subject:邮件主题
* body:邮件内容
*
*/
//require ‘PHPMailer/PHPMailerAutoload.php’;
class SendMailer{
function __construct(to,subject,body){
mail = new PHPMailer();
mail -> isSMTP();
mail -> CharSet=’UTF-8’; //设置邮件的字符编码,这很重要,不然中文乱码
mail -> SMTPAuth = true; //开启认证
mail -> Port = 25; //邮箱服务的端口默认为25
mail -> Host = “smtp.126.com”;
mail -> Username = ‘jinzhigang_hi@126.com’; // SMTP username
$mail -> Password = ‘King0514’;
$mail->setFrom('jinzhigang_hi@126.com', '金志刚'); $mail->addAddress($to, ''); // Add a recipient $mail->isHTML(true); // Set email format to HTML $mail->Subject = $subject; $mail->Body = $body; if(!$mail->send()) { echo json_encode(array('result' => 'error')); } else { echo json_encode(array('result' => 'result')); } }
}
/*
* 动态时间
* time:动态发布的时间
*/
function trends_time(time){
//判断传入的参数是字符串还是数字,若是字符串则转换为数字类型
time=is_string(time)?strtotime(time):time;
//将传入的时间参数赋予一个变量保存下来
_time=time;
$time=abs($time-time()); //判断时间差 //一分钟之内,返回‘刚刚’ if ($time<60){ return '刚刚'; }else if ($time<3600){//一小时内,返回几分钟 return floor($time/60).'分钟内'; }else if ($time<24*3600){//一天之内,返回几小时 return floor($time/3600).'小时内'; }else if ($time<24*3600*30){//一个月之内,返回几天 return floor($time/(3600*24)).'天内'; }else if ($time<24*3600*365){//一年内,返回几月几日 return date('m-d',$_time); }else {//超过一年,返回哪一年哪一月哪一日 return date('Y-m-d',$_time); }
}
/*
* 解析JSON
* str:解析的Json字符串
* key:想要获得的键
*/
function decode_json(str,key){
json = (array)json_decode(str);
return json[key];
}
/*
* 获得文件的工程路径(目录)
* dir:文件名
*/
function scan_dir(dir){
if (handle = opendir(dir)){
arr = array();
while (file = readdir(handle)){
if (file != ‘.’&& file!=’..’){
if (is_dir(dir.’/’.file)){
arr[file] = scan_dir(dir.’/’.file);
}else {
arr[] = file;
}
}
}
} return false;
}
/*
* 去重
* arr:想要处理的数组或字符串
*/
function uniqid_array(arr){
if(!is_array(arr)){
return false;
}
foreach(arr as key => val){
foreach(arr as k => v){
if(key === k){
continue;
}
if($val === $v){ $arr[$key] = ''; } } } $_arr = array(); foreach($arr as $key => $val){ if($val === ''){ continue; } $_arr[$key] = $val; } return $_arr;
}
相关文章推荐
- 用angular-file-upload在上传文件的时候动态设置一同发送的参数
- ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
- php使用AjaxFileUpload上传图片文件实例
- kindeditor上传文件在SpringMVC中servletFileUpload.parseRequest(request)解析为空获取不到数据问题 .
- AjaxFileUpload文件上传组件(php+jQuery+ajax)
- AjaxFileUpload结合Struts2实现多文件上传(动态添加文件上传框)
- 使用ajaxfileupload.js实现ajax上传文件php版
- JavaWeb实现文件上传下载功能实例解析------apache.commons.fileupload
- ajaxFileUpload 异步上传文件配合PHP的使用
- 【Html5】JQuery插件ajaxFileUpload 异步上传文件(PHP版)
- 用uploadfile组件实现动态文件上传到ORACLE数据库
- EXt JS 4 官方示例解读--文件上传(file-upload.html、file-upload.js、file-upload.php)
- php jquery之ajax上传文件 ajaxfileupload.js
- PHP版本高于5.5时,curl文件上传必须使用CurlFile对象
- ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
- php处理微信小程序wx.uploadFile(OBJECT)发送过来的文件
- JQuery插件ajaxFileUpload 异步上传文件(PHP版)
- ajax+php无刷新文件上传(ajaxuploadfile)
- ajaxFileUpload+struts2实现多文件上传(动态添加文件上传框)
- 解析ajaxFileUpload 异步上传文件简单使用