自定义的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,'/');
//&
宠物免费领养小程序,欢迎来踩