zoukankan      html  css  js  c++  java
  • 常用方法

      1 1.
      2 /**
      3  * 友好时间
      4  */
      5 function fdate($time) {
      6     if (! $time)
      7         return false;
      8     $fdate = '' ;
      9     $d = time() - intval($time);
     10     $ld = $time - mktime(0 , 0, 0, 0 , 0, date('Y' )); //
     11     $md = $time - mktime( 0, 0 , 0, date('m' ), 0, date('Y' )); //
     12     $byd = $time - mktime( 0, 0 , 0, date('m' ), date( 'd') - 2, date('Y' )); //前天
     13     $yd = $time - mktime( 0, 0 , 0, date('m' ), date( 'd') - 1, date('Y' )); //昨天
     14     $dd = $time - mktime( 0, 0 , 0, date('m' ), date( 'd'), date('Y' )); //今天
     15     $td = $time - mktime( 0, 0 , 0, date('m' ), date( 'd') + 1, date('Y' )); //明天
     16     $atd = $time - mktime( 0, 0 , 0, date('m' ), date( 'd') + 2, date('Y' )); //后天
     17     if ($d == 0) {
     18         $fdate = '刚刚' ;
     19     } else {
     20         switch ($d) {
     21             case $d < $atd:
     22                 $fdate = date( 'Y年m月d日' , $time);
     23                 break;
     24             case $d < $td:
     25                 $fdate = '后天' . date ('H:i', $time);
     26                 break;
     27             case $d < 0:
     28                 $fdate = '明天' . date ('H:i', $time);
     29                 break;
     30             case $d < 60:
     31                 $fdate = $d . '秒前';
     32                 break;
     33             case $d < 3600:
     34                 $fdate = floor($d / 60) . '分钟前';
     35                 break;
     36             case $d < $dd:
     37                 $fdate = floor($d / 3600) . '小时前';
     38                 break;
     39             case $d < $yd:
     40                 $fdate = '昨天' . date ('H:i', $time);
     41                 break;
     42             case $d < $byd:
     43                 $fdate = '前天' . date ('H:i', $time);
     44                 break;
     45             case $d < $md:
     46                 $fdate = date( 'm月d H:i', $time);
     47                 break;
     48             case $d < $ld:
     49                 $fdate = date( 'm月d', $time);
     50                 break;
     51             default:
     52                 $fdate = date( 'Y年m月d日' , $time);
     53                 break;
     54         }
     55     }
     56     return $fdate;
     57 }
     58 
     59 /**
     60  * 靓号分隔
     61  * Enter description here ...
     62  * @param unknown_type $num
     63  */
     64 function phone_number_format($num){
     65       $number1 = substr($num , 0,3 );
     66       $number2 = substr($num , 3,4 );
     67       $number3 = substr($num , 7,4 );
     68       $number  = $number1.' ' .$number2.' '.$number3;
     69       return $number;
     70 }
     71 
     72 2.
     73 function format_price($price)
     74 {
     75       return '¥' .''. round($price,2 );
     76 }
     77 
     78 3.
     79 //utf8 字符串截取
     80 function msubstr($str, $start =0, $length =15, $charset ="utf-8", $suffix=false)
     81 {
     82       if(function_exists ("mb_substr"))
     83     {
     84         $slice =  mb_substr($str, $start, $length, $charset);
     85         if($suffix& $slice!=$str) return $slice."…" ;
     86       return $slice;
     87     }
     88     elseif(function_exists ('iconv_substr')) {
     89         return iconv_substr($str,$start,$length,$charset);
     90     }
     91     $re ['utf-8']   = "/[x01- x7f]|[xc2 -xdf][ x80-xbf ]|[xe0- xef][x80 -xbf]{2}|[ xf0-xff ][x80- xbf]{3}/";
     92     $re ['gb2312'] = "/[x01 -x7f]|[ xb0-xf7 ][xa0- xfe]/";
     93     $re ['gbk']    = "/[x01 -x7f]|[ x81-xfe ][x40- xfe]/";
     94     $re ['big5']   = "/[x01- x7f]|[x81 -xfe]([ x40-x7e ]|xa1- xfe])/";
     95     preg_match_all($re[ $charset], $str, $match);
     96     $slice = join( "",array_slice ($match[0 ], $start, $length));
     97     if($suffix&& $slice!=$str) return $slice."…" ;
     98     return $slice;
     99 }
    100 
    101 4.
    102 /**
    103   * 生成随机字串
    104   * @param number $length 长度,默认为16,最长为32字节
    105   * @return string
    106   */
    107 public function generateNonceStr($length =16){
    108             // 密码字符集,可任意添加你需要的字符
    109             $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ;
    110            $str = "" ;
    111             for($i = 0; $i < $length; $i++)
    112            {
    113                 $str .= $chars [mt_rand( 0, strlen ($chars) - 1 )];
    114            }
    115             return $str;
    116 }
    117 
    118 /**
    119   * 获取毫秒级别的时间戳
    120   */
    121 private static function getMillisecond()
    122 {
    123         //获取毫秒的时间戳
    124         $time = explode ( " ", microtime () );
    125         $time = $time[1] . ($time[0] * 1000);
    126         $time2 = explode( ".", $time );
    127         $time = $time2[0];
    128         return $time;
    129 }  
    130 
    131 5.
    132 /**
    133  * 获取数组中的某一列
    134  * @param type $arr 数组
    135  * @param type $key_name  列名
    136  * @return type  返回那一列的数组
    137  */
    138 function get_arr_column($arr, $key_name)
    139 {
    140     $arr2 = array();
    141     foreach($arr as $key => $val){
    142         $arr2[] = $val[$key_name];        
    143     }
    144     return $arr2;
    145 }  
    146 
    147 6.
    148 /**
    149  * 将二维数组以元素的某个值作为键 并归类数组
    150  * array( array('name'=>'aa','type'=>'pay'), array('name'=>'cc','type'=>'pay') )
    151  * array('pay'=>array( array('name'=>'aa','type'=>'pay') , array('name'=>'cc','type'=>'pay') ))
    152  * @param $arr 数组
    153  * @param $key 分组值的key
    154  * @return array
    155  */
    156 function group_same_key($arr,$key){
    157     $new_arr = array();
    158     foreach($arr as $k=>$v ){
    159         $new_arr[$v[$key]][] = $v;
    160     }
    161     return $new_arr;
    162 }  
    163 
    164 7.
    165 /**
    166  * 过滤数组元素前后空格 (支持多维数组)
    167  * @param $array 要过滤的数组
    168  * @return array|string
    169  */
    170 function trim_array_element($array){
    171     if(!is_array($array))
    172         return trim($array);
    173     return array_map('trim_array_element',$array);
    174 }  
    175 
    176 
    177 8.
    178 //php获取中文字符拼音首字母
    179 function getFirstCharter($str){
    180       if(empty($str))
    181       {
    182             return '';          
    183       }
    184       $fchar=ord($str{0});
    185       if($fchar>=ord('A')&&$fchar<=ord('z')) return strtoupper($str{0});
    186       $s1=iconv('UTF-8','gb2312',$str);
    187       $s2=iconv('gb2312','UTF-8',$s1);
    188       $s=$s2==$str?$s1:$str;
    189       $asc=ord($s{0})*256+ord($s{1})-65536;
    190      if($asc>=-20319&&$asc<=-20284) return 'A';
    191      if($asc>=-20283&&$asc<=-19776) return 'B';
    192      if($asc>=-19775&&$asc<=-19219) return 'C';
    193      if($asc>=-19218&&$asc<=-18711) return 'D';
    194      if($asc>=-18710&&$asc<=-18527) return 'E';
    195      if($asc>=-18526&&$asc<=-18240) return 'F';
    196      if($asc>=-18239&&$asc<=-17923) return 'G';
    197      if($asc>=-17922&&$asc<=-17418) return 'H';
    198      if($asc>=-17417&&$asc<=-16475) return 'J';
    199      if($asc>=-16474&&$asc<=-16213) return 'K';
    200      if($asc>=-16212&&$asc<=-15641) return 'L';
    201      if($asc>=-15640&&$asc<=-15166) return 'M';
    202      if($asc>=-15165&&$asc<=-14923) return 'N';
    203      if($asc>=-14922&&$asc<=-14915) return 'O';
    204      if($asc>=-14914&&$asc<=-14631) return 'P';
    205      if($asc>=-14630&&$asc<=-14150) return 'Q';
    206      if($asc>=-14149&&$asc<=-14091) return 'R';
    207      if($asc>=-14090&&$asc<=-13319) return 'S';
    208      if($asc>=-13318&&$asc<=-12839) return 'T';
    209      if($asc>=-12838&&$asc<=-12557) return 'W';
    210      if($asc>=-12556&&$asc<=-11848) return 'X';
    211      if($asc>=-11847&&$asc<=-11056) return 'Y';
    212      if($asc>=-11055&&$asc<=-10247) return 'Z';
    213      return null;
    214 }
    215 
    216 9.
    217 /**
    218  * 判断当前访问的用户是  PC端  还是 手机端  返回true 为手机端  false 为PC 端
    219  * @return boolean
    220  */
    221 /**
    222   * 是否移动端访问访问
    223   *
    224   * @return bool
    225   */
    226 function isMobile()
    227 {
    228         // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    229     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
    230     return true;
    231     // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    232     if (isset ($_SERVER['HTTP_VIA']))
    233     {
    234     // 找不到为flase,否则为true
    235     return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    236     }
    237     // 脑残法,判断手机发送的客户端标志,兼容性有待提高
    238     if (isset ($_SERVER['HTTP_USER_AGENT']))
    239     {
    240         $clientkeywords = array ('nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile');
    241         // 从HTTP_USER_AGENT中查找手机浏览器的关键字
    242         if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
    243             return true;
    244     }
    245         // 协议法,因为有可能不准确,放到最后判断
    246     if (isset ($_SERVER['HTTP_ACCEPT']))
    247     {
    248     // 如果只支持wml并且不支持html那一定是移动设备
    249     // 如果支持wml和html但是wml在html之前则是移动设备
    250         if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
    251         {
    252             return true;
    253         }
    254     }
    255             return false;
    256  } 
  • 相关阅读:
    http
    VUE-1
    AJAX
    html常用标签
    CSS网页布局
    概念整理3
    SEO
    概念整理2
    var
    概念整理
  • 原文地址:https://www.cnblogs.com/d-kis/p/5689314.html
Copyright © 2011-2022 走看看