php的curl,uploadfile上传文件,xml解析,邮件发送,动态时间,去重,等

来源:互联网 发布:淘宝订单号查询 编辑:程序博客网 时间:2024/06/06 01:59

/**
* 请求接口返回内容
* @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:XMLkey:想要解析出的键
*/

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;

}