字符串截取函数,批量上传类,邮件发送函数,友好时间函数

1. 字符串截取,支持中文和其他编码
/**
 * 字符串截取,支持中文和其他编码
 * @static
 * @access public
 * @param string $str 需要转换的字符串
 * @param string $start 开始位置
 * @param string $length 截取长度
 * @param string $charset 编码格式
 * @param string $suffix 截断显示字符
 * @return string
 */
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) {
    if(function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif(function_exists('iconv_substr')) {
        $slice = iconv_substr($str,$start,$length,$charset);
        if(false === $slice) {
            $slice = '';
        }
    }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));
    }
    return $suffix ? $slice.'...' : $slice;
}
2. 图片批量上传类

// +----------------------------------------------------------------------
// | 特殊备注
// +----------------------------------------------------------------------
namespace Member\Controller;
use Think\Controller;
class UploadController extends CommonController{
	public function picture(){
		$upload = new \Think\Upload();// 实例化上传类    
		$upload->maxSize   =     3145728 ;// 设置附件上传大小    
		$upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型    
		$upload->savePath  =      '/Products/'; // 设置附件上传目录    // 上传文件     
		$info   =   $upload->upload();    
		if(!$info) {// 上传错误提示错误信息   
			$error=$upload->getError();
            $data['error_info']=$error;
            echo json_encode($data);     
			  
		}else{// 上传成功   
			$user_id = cookie('user_id');
  			$time	 = time();
			foreach($info as $file){
                $data['name']='/Uploads'.trim($file['savepath'].$file['savename']);
                $imgData=[
					'user_id'		=> $user_id,
					'file_id'		=> I('id'),
					'title'			=> I('name'),
					'mimetype'		=> I('type'),
					'size'			=> I('size'),
					'create_time'	=> $time,
					'update_time'	=> $time,
					'filepath'		=> $data['name'],
					'type'			=> $file['saveExt'],
				];
				if ($imgData) $data['imgid']= M('Attachment')->add($imgData);
                echo json_encode($data);
            }   
		}
	}
}
3. 邮件发送函数
function send_mail($to, $title, $content) {
	try {
		Vendor('PHPMailer.PHPMailerAutoload');     
		$mail = new PHPMailer(); //实例化
		$mail->IsSMTP(); // 启用SMTP
		$mail->Host=C('SMTP'); //smtp服务器的名称(这里以QQ邮箱为例)
		$mail->SMTPAuth = true; //启用smtp认证
		$mail->Username = C('EMAIL'); //你的邮箱名
		$mail->Password = C('PWD') ; //邮箱密码
		$mail->From = C('EMAIL'); //发件人地址(也就是你的邮箱地址)
		$mail->FromName = '国际电子商务网'; //发件人姓名
		$mail->AddAddress($to,"尊敬的用户");
		$mail->WordWrap = 50; //设置每行字符长度
		$mail->IsHTML(true); // 是否HTML格式邮件
		$mail->CharSet='utf-8'; //设置邮件编码
		$mail->Subject =$title; //邮件主题
		$mail->Body = $content; //邮件内容
		$mail->AltBody = "这是一个纯文本的身体在非营利的HTML电子邮件客户端"; 
		
		//邮件正文不支持HTML的备用显示
		return($mail->Send());
	} 
	catch (phpmailerException $e) {
		return "邮件发送失败:".$e->errorMessage();
	}
}
4. 友好时间函数
function friendlyDate($sTime,$type = 'normal',$alt = 'false') {
	if (!$sTime)
		return '';
	$cTime      =   time();//cTime=当前时间
	$dTime      =   $cTime - $sTime;//dTime=时间差
	$dDay       =   intval(date("z",$cTime)) - intval(date("z",$sTime));
	$dYear      =   intval(date("Y",$cTime)) - intval(date("Y",$sTime));
	if($type=='normal'){
		if( $dTime < 60 ){
			if($dTime < 10){
				return '刚刚';    //by yangjs
			}else{
				return intval(floor($dTime / 10) * 10)."秒前";
			}
		}elseif( $dTime < 3600 ){
			return intval($dTime/60)."分钟前";
		}elseif( $dYear==0 && $dDay == 0  ){
			return '今天'.date('H:i',$sTime);
		}elseif($dYear==0){
			return date("m月d日 H:i",$sTime);
		}else{
			return date("Y-m-d H:i",$sTime);
		}
	}elseif($type=='mohu'){
		if( $dTime < 60 ){
			return $dTime."秒前";
		}elseif( $dTime < 3600 ){
			return intval($dTime/60)."分钟前";
		}elseif( $dTime >= 3600 && $dDay == 0  ){
			return intval($dTime/3600)."小时前";
		}elseif( $dDay > 0 && $dDay<=7 ){
			return intval($dDay)."天前";
		}elseif( $dDay > 7 &&  $dDay <= 30 ){
			return intval($dDay/7) . '周前';
		}elseif( $dDay > 30 ){
			return intval($dDay/30) . '个月前';
		}
		//full: Y-m-d , H:i:s
	}elseif($type=='full'){
		return date("Y-m-d , H:i:s",$sTime);
	}elseif($type=='ymd'){
		return date("Y-m-d",$sTime);
	}else{
		if( $dTime < 60 ){
			return $dTime."秒前";
		}elseif( $dTime < 3600 ){
			return intval($dTime/60)."分钟前";
		}elseif( $dTime >= 3600 && $dDay == 0  ){
			return intval($dTime/3600)."小时前";
		}elseif($dYear==0){
			return date("Y-m-d H:i:s",$sTime);
		}else{
			return date("Y-m-d H:i:s",$sTime);
		}
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值