自己项目中PHP常用工具类大全分享

Posted 刘星石

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己项目中PHP常用工具类大全分享相关的知识,希望对你有一定的参考价值。

php代码  
  1. <?php  
  2.  /** 
  3.  * 助手类 
  4.  * @author www.shouce.ren 
  5.  * 
  6.  */  
  7.  class Helper  
  8.    
  9.     /** 
  10.      * 判断当前服务器系统 
  11.      * @return string 
  12.      */  
  13.     public static function getOS()  
  14.         if(PATH_SEPARATOR == ':')  
  15.             return 'Linux';  
  16.         else  
  17.             return 'Windows';  
  18.           
  19.       
  20.     /** 
  21.      * 当前微妙数 
  22.      * @return number 
  23.      */  
  24.     public static function microtime_float()   
  25.         list ( $usec$sec ) = explode ( " ", microtime () );  
  26.         return (( float ) $usec + ( float ) $sec);  
  27.       
  28.     /** 
  29.      * 切割utf-8格式的字符串(一个汉字或者字符占一个字节) 
  30.      * 
  31.      * @author zhao jinhan 
  32.      * @version v1.0.0 
  33.      * 
  34.      */  
  35.     public static function truncate_utf8_string($string$length$etc = '...')   
  36.         $result = '';  
  37.         $string = html_entity_decode ( trim ( strip_tags ( $string ) ), ENT_QUOTES, 'UTF-8' );  
  38.         $strlen = strlen ( $string );  
  39.         for($i = 0; (($i < $strlen) && ($length > 0)); $i ++)   
  40.             if ($number = strpos ( str_pad ( decbin ( ord ( substr ( $string$i, 1 ) ) ), 8, '0', STR_PAD_LEFT ), '0' ))   
  41.                 if ($length < 1.0)   
  42.                     break;  
  43.                   
  44.                 $result .= substr ( $string$i$number );  
  45.                 $length -= 1.0;  
  46.                 $i += $number - 1;  
  47.              else   
  48.                 $result .= substr ( $string$i, 1 );  
  49.                 $length -= 0.5;  
  50.               
  51.           
  52.         $result = htmlspecialchars ( $result, ENT_QUOTES, 'UTF-8' );  
  53.         if ($i < $strlen)   
  54.             $result .= $etc;  
  55.           
  56.         return $result;  
  57.       
  58.     /** 
  59.      * 遍历文件夹 
  60.      * @param string $dir 
  61.      * @param boolean $all  true表示递归遍历 
  62.      * @return array 
  63.      */  
  64.     public static function scanfDir($dir=''$all = false, &$ret = array())  
  65.         if ( false !== ($handle = opendir ( $dir )))   
  66.             while ( false !== ($file = readdir ( $handle )) )   
  67.                 if (!in_array($filearray('.''..''.git''.gitignore''.svn''.htaccess''.buildpath','.project')))   
  68.                     $cur_path = $dir . '/' . $file;  
  69.                     if (is_dir ( $cur_path ))   
  70.                         $ret['dirs'][] =$cur_path;  
  71.                         $all && self::scanfDir( $cur_path$all$ret);  
  72.                      else   
  73.                         $ret ['files'] [] = $cur_path;  
  74.                       
  75.                   
  76.               
  77.             closedir ( $handle );  
  78.           
  79.         return $ret;  
  80.       
  81.     /** 
  82.      * 邮件发送 
  83.      * @param string $toemail 
  84.      * @param string $subject 
  85.      * @param string $message 
  86.      * @return boolean 
  87.      */  
  88.     public static function sendMail($toemail = ''$subject = ''$message = '')   
  89.         $mailer = Yii::createComponent ( 'application.extensions.mailer.EMailer' );  
  90.         //邮件配置  
  91.         $mailer->SetLanguage('zh_cn');  
  92.         $mailer->Host = Yii::app()->params['emailHost']; //发送邮件服务器  
  93.         $mailer->Port = Yii::app()->params['emailPort']; //邮件端口  
  94.         $mailer->Timeout = Yii::app()->params['emailTimeout'];//邮件发送超时时间  
  95.         $mailer->ContentType = 'text/html';//设置html格式  
  96.         $mailer->SMTPAuth = true;  
  97.         $mailer->Username = Yii::app()->params['emailUserName'];  
  98.         $mailer->Password = Yii::app()->params['emailPassword'];  
  99.         $mailer->IsSMTP ();  
  100.         $mailer->From = $mailer->Username; // 发件人邮箱  
  101.         $mailer->FromName = Yii::app()->params['emailFormName']; // 发件人姓名  
  102.         $mailer->AddReplyTo ( $mailer->Username );  
  103.         $mailer->CharSet = 'UTF-8';  
  104.         // 添加邮件日志  
  105.         $modelMail = new MailLog ();  
  106.         $modelMail->accept = $toemail;  
  107.         $modelMail->subject = $subject;  
  108.         $modelMail->message = $message;  
  109.         $modelMail->send_status = 'waiting';  
  110.         $modelMail->save ();  
  111.         // 发送邮件  
  112.         $mailer->AddAddress ( $toemail );  
  113.         $mailer->Subject = $subject;  
  114.         $mailer->Body = $message;  
  115.         if ($mailer->Send () === true)   
  116.             $modelMail->times = $modelMail->times + 1;  
  117.             $modelMail->send_status = 'success';  
  118.             $modelMail->save ();  
  119.             return true;  
  120.          else   
  121.             $error = $mailer->ErrorInfo;  
  122.             $modelMail->times = $modelMail->times + 1;  
  123.             $modelMail->send_status = 'failed';  
  124.             $modelMail->error = $error;  
  125.             $modelMail->save ();  
  126.             return false;  
  127.           
  128.       
  129.     /** 
  130.      * 判断字符串是utf-8 还是gb2312 
  131.      * @param unknown $str 
  132.      * @param string $default 
  133.      * @return string 
  134.      */  
  135.     public static function utf8_gb2312($str$default = 'gb2312')  
  136.       
  137.         $str = preg_replace("/[\\x01-\\x7F]+/"""$str);  
  138.         if (emptyempty($str)) return $default;  
  139.         $preg =  array(  
  140.             "gb2312" => "/^([\\xA1-\\xF7][\\xA0-\\xFE])+$/"//正则判断是否是gb2312  
  141.             "utf-8" => "/^[\\x4E00-\\x9FA5]+$/u",      //正则判断是否是汉字(utf8编码的条件了),这个范围实际上已经包含了繁体中文字了  
  142.         );  
  143.         if ($default == 'gb2312')   
  144.             $option = 'utf-8';  
  145.          else   
  146.             $option = 'gb2312';  
  147.           
  148.         if (!preg_match($preg[$default], $str))   
  149.             return $option;  
  150.           
  151.         $str = @iconv($default$option$str);  
  152.         //不能转成 $option, 说明原来的不是 $default  
  153.         if (emptyempty($str))   
  154.             return $option;  
  155.           
  156.         return $default;  
  157.       
  158.     /** 
  159.      * utf-8和gb2312自动转化 
  160.      * @param unknown $string 
  161. 常用的热门 API 大全分享

    十次方项目的环境搭建

    Java 并发工具包 java.util.concurrent 大全

    netbeans中的快捷键都有哪些?netbeans中常用快捷键大全

    项目经验分享——Java常用工具类集合 转

    靶机大全