自定义的110个php常用功能函数:
函数下载地址:http://pan.baidu.com/s/1jINQ5EY
'./', //文件上传保存的根路径 'savePath' =>'./'.$path.'/', 'exts' => array('jpg', 'gif', 'png', 'jpeg','bmp'), 'maxSize' => $maxSize, 'autoSub' => true, ); $upload = new \Think\Upload($config);// 实例化上传类 $info = $upload->upload(); if($info) { foreach ($info as $k => $v) { $data[]=trim($v['savepath'],'.').$v['savename']; } return $data; } } /** * 阿里云OSS操作 * 实例化阿里云oos * @return object 实例化得到的对象 * 自学php博客www.zixuephp.cn整理 */ function new_oss(){ vendor('Alioss.autoload'); $config=C('ALIOSS_CONFIG'); $oss=new \OSS\OssClient($config['KEY_ID'],$config['KEY_SECRET'],$config['END_POINT']); return $oss; } /** * 阿里云OSS操作 * 上传Object * key 用专题的id标识本片专题 * $str 是要上传的专题的内容 * 自学php博客www.zixuephp.cn整理 */ function uploadObject($str,$id){ $id='M_Upload/zhuanti/content/'.$id; $accessKeyId=C('ALIOSS_CONFIG.KEY_ID'); $accessKeySecret=C('ALIOSS_CONFIG.KEY_SECRET'); $endpoint=C('ALIOSS_CONFIG.END_POINT'); $bucket=C('ALIOSS_CONFIG.BUCKET'); //$oss->putObject($bucket,$id,$str); vendor('Alioss.autoload'); $config=C('ALIOSS_CONFIG'); $ossClient=new \OSS\OssClient($config['KEY_ID'],$config['KEY_SECRET'],$config['END_POINT']); try { //$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->putObject($bucket, $id, $str); } catch (OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } return $id; } /** * 阿里云OSS操作 * 上传Object * key 用专题的id标识本片专题 * $str 是要上传的专题的内容 * 自学php博客www.zixuephp.cn整理 */ function downObject($id){ $accessKeyId=C('ALIOSS_CONFIG.KEY_ID'); $accessKeySecret=C('ALIOSS_CONFIG.KEY_SECRET'); $endpoint=C('ALIOSS_CONFIG.END_POINT'); $bucket=C('ALIOSS_CONFIG.BUCKET'); //$oss->putObject($bucket,$id,$str); try { vendor('Alioss.autoload'); $config=C('ALIOSS_CONFIG'); $ossClient=new \OSS\OssClient($config['KEY_ID'],$config['KEY_SECRET'],$config['END_POINT']); $content=$ossClient->getObject($bucket, $id); print("object content: " . $content); } catch (OssException $e) { print $e->getMessage(); } } /** * 阿里云OSS操作 * 上传文件到阿里云OSS并删除本地文件 * @param string $path 文件路径 * @return bollear 是否上传 * 自学php博客www.zixuephp.cn整理 */ function oss_upload($path){ // 获取bucket名称 $bucket=C('ALIOSS_CONFIG.BUCKET'); // 先统一去除左侧的.或者/ 再添加./ $oss_path=ltrim($path,'./'); $path='./'.$oss_path; if (file_exists($path)) { // 实例化oss类 $oss=new_oss(); // 上传到oss $oss->uploadFile($bucket,$oss_path,$path); // 如需上传到oss后 自动删除本地的文件 则删除下面的注释 unlink($path); return true; } return false; } /** * 阿里云OSS操作 * 删除阿里云OSS上指定文件 * @param string $object 文件路径 例如删除 /Public/README.md文件 传Public/README.md 即可 * 自学php博客www.zixuephp.cn整理 */ function oss_delet_object($object){ // 实例化oss类 $oss=new_oss(); // 获取bucket名称 $bucket=C('ALIOSS_CONFIG.BUCKET'); $test=$oss->deleteObject($bucket,$object); } /** * 阿里云OSS操作 * 获取完整网络连接 * @param string $path 文件路径 * @return string http连接 * 自学php博客www.zixuephp.cn整理 */ function get_url($path){ // 如果是空;返回空 if (empty($path)) { return ''; } // 如果已经有http直接返回 if (strpos($path, 'http://')!==false) { return $path; } // 判断是否使用了oss $alioss=C('ALIOSS_CONFIG'); if (empty($alioss['KEY_ID'])) { return 'http://'.$_SERVER['HTTP_HOST'].$path; }else{ $path=ltrim($path,'.'); return 'http://'.$alioss['BUCKET'].'.'.$alioss['END_POINT'].$path; } } /** * app 视频上传 * @return string 上传后的视频名 * 自学php博客www.zixuephp.cn整理 */ function app_upload_video($path,$maxSize=52428800){ ini_set('max_execution_time', '0'); // 去除两边的/ $path=trim($path,'.'); $path=trim($path,'/'); $config=array( 'rootPath' =>'./', //文件上传保存的根路径 'savePath' =>'./'.$path.'/', 'exts' => array('mp4','avi','3gp','rmvb','gif','wmv','mkv','mpg','vob','mov','flv','swf','mp3','ape','wma','aac','mmf','amr','m4a','m4r','ogg','wav','wavpack'), 'maxSize' => $maxSize, 'autoSub' => true, ); $upload = new \Think\Upload($config);// 实例化上传类 $info = $upload->upload(); if($info) { foreach ($info as $k => $v) { $data[]=trim($v['savepath'],'.').$v['savename']; } return $data; } } /** * 返回文件格式 * @param string $str 文件名 * @return string 文件格式 * 自学php博客www.zixuephp.cn整理 */ function file_format($str){ // 取文件后缀名 $str=strtolower(pathinfo($str, PATHINFO_EXTENSION)); // 图片格式 $image=array('webp','jpg','png','ico','bmp','gif','tif','pcx','tga','bmp','pxc','tiff','jpeg','exif','fpx','svg','psd','cdr','pcd','dxf','ufo','eps','ai','hdri'); // 视频格式 $video=array('mp4','avi','3gp','rmvb','gif','wmv','mkv','mpg','vob','mov','flv','swf','mp3','ape','wma','aac','mmf','amr','m4a','m4r','ogg','wav','wavpack'); // 压缩格式 $zip=array('rar','zip','tar','cab','uue','jar','iso','z','7-zip','ace','lzh','arj','gzip','bz2','tz'); // 文档格式 $text=array('exe','doc','ppt','xls','wps','txt','lrc','wfs','torrent','html','htm','java','js','css','less','php','pdf','pps','host','box','docx','word','perfect','dot','dsf','efe','ini','json','lnk','log','msi','ost','pcs','tmp','xlsb'); // 匹配不同的结果 switch ($str) { case in_array($str, $image): return 'image'; break; case in_array($str, $video): return 'video'; break; case in_array($str, $zip): return 'zip'; break; case in_array($str, $text): return 'text'; break; default: return 'image'; break; } } /** * 发送友盟推送消息 * @param integer $uid 用户id * @param string $title 推送的标题 * @return boolear 是否成功 * 自学php博客www.zixuephp.cn整理 */ function umeng_push($uid,$title){ // 获取token $device_tokens=D('OauthUser')->getToken($uid,2); // 如果没有token说明移动端没有登录;则不发送通知 if (empty($device_tokens)) { return false; } // 导入友盟 Vendor('Umeng.Umeng'); // 自定义字段 根据实际环境分配;如果不用可以忽略 $status=1; // 消息未读总数统计 根据实际环境获取未读的消息总数 此数量会显示在app图标右上角 $count_number=1; $data=array( 'key'=>'status', 'value'=>"$status", 'count_number'=>$count_number ); // 判断device_token 64位表示为苹果 否则为安卓 if(strlen($device_tokens)==64){ $key=C('UMENG_IOS_APP_KEY'); $timestamp=C('UMENG_IOS_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendIOSUnicast($data,$title,$device_tokens); }else{ $key=C('UMENG_ANDROID_APP_KEY'); $timestamp=C('UMENG_ANDROID_SECRET'); $umeng=new \Umeng($key, $timestamp); $umeng->sendAndroidUnicast($data,$title,$device_tokens); } return true; } /** * 返回用户id * @return integer 用户id * 自学php博客www.zixuephp.cn整理 */ function get_uid(){ return $_SESSION['user']['id'];//根据自己登录的时候保存的SESSION元素而定 } /** * 返回iso、Android、ajax的json格式数据 * @param array $data 需要发送到前端的数据 * @param string $error_message 成功或者错误的提示语 * @param integer $error_code 状态码: 0:成功 1:失败 * @return string json格式的数据 * 自学php博客www.zixuephp.cn整理 */ function ajax_return($data='',$error_message='成功',$error_code=1){ $all_data=array( 'error_code'=>$error_code, 'error_message'=>$error_message, ); if ($data!=='') { $all_data['data']=$data; // app 禁止使用和为了统一字段做的判断 $reserved_words=array('id','title','price','product_title','product_id','product_category','product_number'); foreach ($reserved_words as $k => $v) { if (array_key_exists($v, $data)) { echo 'app不允许使用【'.$v.'】这个键名 —— 此提示是function.php 中的ajax_return函数返回的'; die; } } } // 如果是ajax或者app访问;则返回json数据 pc访问直接p出来 echo json_encode($all_data); exit(0); } /** * 检测是否登录 * @return boolean 是否登录 * 自学php博客www.zixuephp.cn整理 */ function check_login(){ if (!empty($_SESSION['user']['id'])){ return true; }else{ return false; } } /** * 根据配置项获取对应的key和secret * @return array key和secret * 自学php博客www.zixuephp.cn整理 */ function get_rong_key_secret(){ // 判断是需要开发环境还是生产环境的key if (C('RONG_IS_DEV')) { $key=C('RONG_DEV_APP_KEY'); $secret=C('RONG_DEV_APP_SECRET'); }else{ $key=C('RONG_PRO_APP_KEY'); $secret=C('RONG_PRO_APP_SECRET'); } $data=array( 'key'=>$key, 'secret'=>$secret ); return $data; } /** * 获取融云token * @param integer $uid 用户id * @return integer token * 自学php博客www.zixuephp.cn整理 */ function get_rongcloud_token($uid){ // 从数据库中获取token $token=D('OauthUser')->getToken($uid,1); // 如果有token就返回 if ($token) { return $token; } // 获取用户昵称和头像 $user_data=M('Users')->field('username,avatar')->getById($uid); // 用户不存在 if (empty($user_data)) { return false; } // 获取头像url格式 $avatar=get_url($user_data['avatar']); // 获取key和secret $key_secret=get_rong_key_secret(); // 实例化融云 $rong_cloud=new \Org\Xb\RongCloud($key_secret['key'],$key_secret['secret']); // 获取token $token_json=$rong_cloud->getToken($uid,$user_data['username'],$avatar); $token_array=json_decode($token_json,true); // 获取token失败 if ($token_array['code']!=200) { return false; } $token=$token_array['token']; $data=array( 'uid'=>$uid, 'type'=>1, 'nickname'=>$user_data['username'], 'head_img'=>$avatar, 'access_token'=>$token ); // 插入数据库 $result=D('OauthUser')->addData($data); if ($result) { return $token; }else{ return false; } } /** * 更新融云头像 * @param integer $uid 用户id * @return boolear 操作是否成功 * 自学php博客www.zixuephp.cn整理 */ function refresh_rongcloud_token($uid){ // 获取用户昵称和头像 $user_data=M('Users')->field('username,avatar')->getById($uid); // 用户不存在 if (empty($user_data)) { return false; } $avatar=get_url($user_data['avatar']); // 获取key和secret $key_secret=get_rong_key_secret(); // 实例化融云 $rong_cloud=new \Org\Xb\RongCloud($key_secret['key'],$key_secret['secret']); // 更新融云用户头像 $result_json=$rong_cloud->userRefresh($uid,$user_data['username'],$avatar); $result_array=json_decode($result_json,true); if ($result_array['code']==200) { return true; }else{ return false; } } /** * 删除指定的标签和内容 * @param array $tags 需要删除的标签数组 * @param string $str 数据源 * @param string $content 是否删除标签内的内容 0保留内容 1不保留内容 * @return string * 自学php博客www.zixuephp.cn整理 */ function strip_html_tags($tags,$str,$content=0){ if($content){ $html=array(); foreach ($tags as $tag) { $html[]='/([\s|\S]*?)/'; } $data=preg_replace($html,'',$str); }else{ $html=array(); foreach ($tags as $tag) { $html[]="/(]*>)/i"; } $data=preg_replace($html, '', $str); } return $data; } /** * 传递ueditor生成的内容获取其中图片的路径 * @param string $str 含有图片链接的字符串 * @return array 匹配的图片数组 * 自学php博客www.zixuephp.cn整理 */ function get_ueditor_image_path($str){ //$preg='/\/Upload\/zhuanti\/u(m)?editor\/\d*\/\d*\.[jpg|jpeg|png|bmp]*/i'; $preg=''; preg_match_all($preg, $str,$data); return current($data); } /** * 字符串截取,支持中文和其他编码 * @param string $str 需要转换的字符串 * @param string $start 开始位置 * @param string $length 截取长度 * @param string $suffix 截断显示字符 * @param string $charset 编码格式 * @return string * 自学php博客www.zixuephp.cn整理 */ function re_substr($str, $start=0, $length, $suffix=true, $charset="utf-8") { if(function_exists("mb_substr")) $slice = mb_substr($str, $start, $length, $charset); elseif(function_exists('iconv_substr')) { $slice = iconv_substr($str,$start,$length,$charset); }else{ $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); } $omit=mb_strlen($str) >=$length ? '...' : ''; return $suffix ? $slice.$omit : $slice; } /** * 设置验证码,生成验证码字符串 * thinkphp自带验证码生成类 * @return 返回生成的验证码字符串 * 自学php博客www.zixuephp.cn整理 */ function show_verify($config=''){ if($config==''){ $config=array( 'codeSet'=>'1234567890', 'fontSize'=>30, 'useCurve'=>false, 'imageH'=>60, 'imageW'=>240, 'length'=>4, 'fontttf'=>'4.ttf', ); } $verify=new \Think\Verify($config); return $verify->entry(); } /** * thinkphp自带验证码检测功能 * 自学php博客www.zixuephp.cn整理 */ function check_verify($code){ $verify=new \Think\Verify(); return $verify->check($code); } /** * 取得根域名 * @param type $domain 域名 * @return string 返回根域名 * 自学php博客www.zixuephp.cn整理 */ function get_url_to_domain($domain) { $re_domain = ''; $domain_postfix_cn_array = array("com", "net", "org", "gov", "edu", "com.cn", "cn"); $array_domain = explode(".", $domain); $array_num = count($array_domain) - 1; if ($array_domain[$array_num] == 'cn') { if (in_array($array_domain[$array_num - 1], $domain_postfix_cn_array)) { $re_domain = $array_domain[$array_num - 2] . "." . $array_domain[$array_num - 1] . "." . $array_domain[$array_num]; } else { $re_domain = $array_domain[$array_num - 1] . "." . $array_domain[$array_num]; } } else { $re_domain = $array_domain[$array_num - 1] . "." . $array_domain[$array_num]; } return $re_domain; } /** * 按符号截取字符串的指定部分 * @param string $str 需要截取的字符串 * @param string $sign 需要截取的符号 * @param int $number 如是正数以0为起点从左向右截 负数则从右向左截 * @return string 返回截取的内容 * 自学php博客www.zixuephp.cn整理 */ /* 示例 $str='123/456/789'; cut_str($str,'/',0); 返回 123 cut_str($str,'/',-1); 返回 789 cut_str($str,'/',-2); 返回 456 具体参考 http://www.baijunyao.com/index.php/Home/Index/article/aid/18 */ function cut_str($str,$sign,$number){ $array=explode($sign, $str); $length=count($array); if($number$length){ return 'error'; }else{ return $new_array[$abs_number-1]; } }else{ if($number>=$length){ return 'error'; }else{ return $array[$number]; } } } /** * 发送邮件 * @param string $address 需要发送的邮箱地址 发送给多个地址需要写成数组形式 * @param string $subject 标题 * @param string $content 内容 * @return boolean 是否成功 * 自学php博客www.zixuephp.cn整理 */ function send_email($address,$subject,$content){ $email_smtp=C('EMAIL_SMTP'); $email_username=C('EMAIL_USERNAME'); $email_password=C('EMAIL_PASSWORD'); $email_from_name=C('EMAIL_FROM_NAME'); if(empty($email_smtp) || empty($email_username) || empty($email_password) || empty($email_from_name)){ return array("error"=>1,"message"=>'邮箱配置不完整'); } require './ThinkPHP/Library/Org/Nx/class.phpmailer.php'; require './ThinkPHP/Library/Org/Nx/class.smtp.php'; $phpmailer=new \Phpmailer(); // 设置PHPMailer使用SMTP服务器发送Email $phpmailer->IsSMTP(); // 设置为html格式 $phpmailer->IsHTML(true); // 设置邮件的字符编码' $phpmailer->CharSet='UTF-8'; // 设置SMTP服务器。 $phpmailer->Host=$email_smtp; // 设置为"需要验证" $phpmailer->SMTPAuth=true; // 设置用户名 $phpmailer->Username=$email_username; // 设置密码 $phpmailer->Password=$email_password; // 设置邮件头的From字段。 $phpmailer->From=$email_username; // 设置发件人名字 $phpmailer->FromName=$email_from_name; // 添加收件人地址,可以多次使用来添加多个收件人 if(is_array($address)){ foreach($address as $addressv){ $phpmailer->AddAddress($addressv); } }else{ $phpmailer->AddAddress($address); } // 设置邮件标题 $phpmailer->Subject=$subject; // 设置邮件正文 $phpmailer->Body=$content; // 发送邮件。 if(!$phpmailer->Send()) { $phpmailererror=$phpmailer->ErrorInfo; return array("error"=>1,"message"=>$phpmailererror); }else{ return array("error"=>0); } } /** * 获取一定范围内的随机数字 * 跟rand()函数的区别是 位数不足补零 例如 * rand(1,9999)可能会得到 465 * rand_number(1,9999)可能会得到 0465 保证是4位的 * @param integer $min 最小值 * @param integer $max 最大值 * @return string * 自学php博客www.zixuephp.cn整理 */ function rand_number ($min=1, $max=9999) { return sprintf("%0".strlen($max)."d", mt_rand($min,$max)); } /** * 生成一定数量的随机数,并且不重复 * @param integer $number 数量 * @param string $len 长度 * @param string $type 字串类型 * 0 字母 1 数字 其它 混合 * @return string */ function build_count_rand ($number,$length=4,$mode=1) { if($mode==1 && $lengthwhere($map) ->order($order) ->limit($page->firstRow.','.$page->listRows) ->select(); $data=array( 'data'=>$list, 'page'=>$page->show() ); return $data; } /* * @param string $path 字符串 保存文件路径示例: /Upload/image/ * @param string $format 文件格式限制 * @param integer $maxSize 允许的上传文件最大值 52428800 * @return booler 返回ajax的json格式数据 * 自学php博客www.zixuephp.cn整理 */ function post_upload($path='file',$format='empty',$maxSize='52428800'){ ini_set('max_execution_time', '0'); // 去除两边的/ $path=trim($path,'/'); // 添加Upload根目录 $path=strtolower(substr($path, 0,6))==='upload' ? ucfirst($path) : 'Upload/'.$path; // 上传文件类型控制 $ext_arr= array( 'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'), 'photo' => array('jpg', 'jpeg', 'png'), 'flash' => array('swf', 'flv'), 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf') ); if(!empty($_FILES)){ // 上传文件配置 $config=array( 'maxSize' => $maxSize, // 上传文件最大为50M 'rootPath' => './', //文件上传保存的根路径 'savePath' => './'.$path.'/', //文件上传的保存路径(相对于根路径) 'saveName' => array('uniqid',''), //上传文件的保存规则,支持数组和字符串方式定义 'autoSub' => true, // 自动使用子目录保存上传文件 默认为true 'exts' => isset($ext_arr[$format])?$ext_arr[$format]:'', ); // 实例化上传 $upload=new \Think\Upload($config); // 调用上传方法 $info=$upload->upload(); $data=array(); if(!$info){ // 返回错误信息 $error=$upload->getError(); $data['error_info']=$error; return $data; }else{ // 返回成功信息 foreach($info as $file){ $data['name']=trim($file['savepath'].$file['savename'],'.'); return $data; } } } } /** * 上传文件类型控制 此方法仅限ajax上传使用 * @param string $path 字符串 保存文件路径示例: /Upload/image/ * @param string $format 文件格式限制 * @param integer $maxSize 允许的上传文件最大值 52428800 * @return booler 返回ajax的json格式数据 * 自学php博客www.zixuephp.cn整理 */ function upload($path='file',$format='empty',$maxSize='52428800'){ ini_set('max_execution_time', '0'); // 去除两边的/ $path=trim($path,'/'); // 添加Upload根目录 $path=strtolower(substr($path, 0,6))==='upload' ? ucfirst($path) : 'Upload/'.$path; // 上传文件类型控制 $ext_arr= array( 'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'), 'photo' => array('jpg', 'jpeg', 'png'), 'flash' => array('swf', 'flv'), 'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'), 'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf') ); if(!empty($_FILES)){ // 上传文件配置 $config=array( 'maxSize' => $maxSize, // 上传文件最大为50M 'rootPath' => './', //文件上传保存的根路径 'savePath' => './'.$path.'/', //文件上传的保存路径(相对于根路径) 'saveName' => array('uniqid',''), //上传文件的保存规则,支持数组和字符串方式定义 'autoSub' => true, // 自动使用子目录保存上传文件 默认为true 'exts' => isset($ext_arr[$format])?$ext_arr[$format]:'', ); // 实例化上传 $upload=new \Think\Upload($config); // 调用上传方法 $info=$upload->upload(); $data=array(); if(!$info){ // 返回错误信息 $error=$upload->getError(); $data['error_info']=$error; echo json_encode($data); }else{ // 返回成功信息 foreach($info as $file){ $data['name']=trim($file['savepath'].$file['savename'],'.'); echo json_encode($data); } } } } /** * 使用curl获取远程数据 * @param string $url url连接 * @return string 获取到的数据 * 自学php博客www.zixuephp.cn整理 */ function curl_get_contents($url){ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); //设置访问的url地址 //curl_setopt($ch,CURLOPT_HEADER,1); //是否显示头部信息 curl_setopt($ch, CURLOPT_TIMEOUT, 5); //设置超时 curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_); //用户访问代理 User-Agent curl_setopt($ch, CURLOPT_REFERER,_REFERER_); //设置 referer curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); //跟踪301 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回结果 $r=curl_exec($ch); curl_close($ch); return $r; } /* * 计算星座的函数 string get_zodiac_sign(string month, string day) * 输入:月份,日期 * 输出:星座名称或者错误信息 * 自学php博客www.zixuephp.cn整理 */ function get_zodiac_sign($month, $day) { // 检查参数有效性 if ($month 12 || $day 31) return (false); // 星座名称以及开始日期 $signs = array( array( "20" => "水瓶座"), array( "19" => "双鱼座"), array( "21" => "白羊座"), array( "20" => "金牛座"), array( "21" => "双子座"), array( "22" => "巨蟹座"), array( "23" => "狮子座"), array( "23" => "处女座"), array( "23" => "天秤座"), array( "24" => "天蝎座"), array( "22" => "射手座"), array( "22" => "摩羯座") ); list($sign_start, $sign_name) = each($signs[(int)$month-1]); if ($day < $sign_start) list($sign_start, $sign_name) = each($signs[($month -2 setAccount($accountSid,$accountToken); $rest->setAppId($appId); // 发送模板短信 $result=$rest->sendTemplateSMS($phone,array($code,5),$templateId); if($result==NULL) { return false; } if($result->statusCode!=0) { return false; }else{ return true; } } /** * 将路径转换加密 * @param string $file_path 路径 * @return string 转换后的路径 * 自学php博客www.zixuephp.cn整理 */ function path_encode($file_path){ return rawurlencode(base64_encode($file_path)); } /** * 将路径解密 * @param string $file_path 加密后的字符串 * @return string 解密后的路径 * 自学php博客www.zixuephp.cn整理 */ function path_decode($file_path){ return base64_decode(rawurldecode($file_path)); } /** * 根据文件后缀的不同返回不同的结果 * @param string $str 需要判断的文件名或者文件的id * @return integer 1:图片 2:视频 3:压缩文件 4:文档 5:其他 * 自学php博客www.zixuephp.cn整理 */ function file_category($str){ // 取文件后缀名 $str=strtolower(pathinfo($str, PATHINFO_EXTENSION)); // 图片格式 $images=array('webp','jpg','png','ico','bmp','gif','tif','pcx','tga','bmp','pxc','tiff','jpeg','exif','fpx','svg','psd','cdr','pcd','dxf','ufo','eps','ai','hdri'); // 视频格式 $video=array('mp4','avi','3gp','rmvb','gif','wmv','mkv','mpg','vob','mov','flv','swf','mp3','ape','wma','aac','mmf','amr','m4a','m4r','ogg','wav','wavpack'); // 压缩格式 $zip=array('rar','zip','tar','cab','uue','jar','iso','z','7-zip','ace','lzh','arj','gzip','bz2','tz'); // 文档格式 $document=array('exe','doc','ppt','xls','wps','txt','lrc','wfs','torrent','html','htm','java','js','css','less','php','pdf','pps','host','box','docx','word','perfect','dot','dsf','efe','ini','json','lnk','log','msi','ost','pcs','tmp','xlsb'); // 匹配不同的结果 switch ($str) { case in_array($str, $images): return 1; break; case in_array($str, $video): return 2; break; case in_array($str, $zip): return 3; break; case in_array($str, $document): return 4; break; default: return 5; break; } } /** * 组合缩略图 * @param string $file_path 原图path * @param integer $size 比例 * @return string 缩略图 * 自学php博客www.zixuephp.cn整理 */ function get_min_image_path($file_path,$width=170,$height=170){ $min_path=str_replace('.', '_'.$width.'_'.$height.'.', trim($file_path,'.')); $min_path='http://xueba17.oss-cn-beijing.aliyuncs.com'.$min_path; return $min_path; } /** * 不区分大小写的in_array() * @param string $str 检测的字符 * @param array $array 数组 * @return boolear 是否in_array * 自学php博客www.zixuephp.cn整理 */ function in_iarray($str,$array){ $str=strtolower($str); $array=array_map('strtolower', $array); if (in_array($str, $array)) { return true; } return false; } /** * 传入时间戳,计算距离现在的时间 * @param number $time 时间戳 * @return string 返回多少以前 * 自学php博客www.zixuephp.cn整理 */ function word_time($time) { $time = (int) substr($time, 0, 10); $int = time() - $time; $str = ''; if ($int <= 2){ $str = sprintf('刚刚', $int); }elseif ($int < 60){ $str = sprintf('%d秒前', $int); }elseif ($int < 3600){ $str = sprintf('%d分钟前', floor($int / 60)); }elseif ($int open($image_path); // 生成一个居中裁剪为$width*$height的缩略图并保存 $image->thumb($width, $height,\Think\Image::IMAGE_THUMB_CENTER)->save($min_path); oss_upload($min_path); return $min_path; } /** * 上传文件类型控制 此方法仅限ajax上传使用 * @param string $path 字符串 保存文件路径示例: /Upload/image/ * @param string $format 文件格式限制 * @param integer $maxSize 允许的上传文件最大值 52428800 * @return booler 返回ajax的json格式数据 * 自学php博客www.zixuephp.cn整理 */ function ajax_upload($path='file',$format='empty',$maxSize='52428800'){ ini_set('max_execution_time', '0'); // 去除两边的/ $path=trim($path,'/'); //&
宠物免费领养小程序,欢迎来踩