您的位置:首页 > 其它

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

2017-02-18 21:27 531 查看
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);
}
}
}


打赏
文章来自:开创者素材好文分享模块,转载请注明文章出处。

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

文章链接:http://www.kaicz.com/blog/3.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string 函数 编码