您的位置:首页 > 编程语言 > PHP开发

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();

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;


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php