AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PHP编程

php比较通用的公共函数

51自学网 2016-09-17 http://www.wanshiok.com
8.返回经 htmlspecialchars 处理过的字符串或数组
/** 
* 返回经 htmlspecialchars 处理过的字符串或数组 
* @param $string 需要处理的字符串或数组 
* @return mixed 
*/  
function new_html_special_chars($string) {  
  if(!is_array($string)) return htmlspecialchars($string);  
  foreach($string as $key => $val) $string[$key] = new_html_special_chars($val);  
  return $string;  
}  
 
9.获取请求ip
/** 
 * 获取请求ip 
 * 
 * @return ip地址 
 */  
function ip() {  
  if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {  
    $ip = getenv('HTTP_CLIENT_IP');  
  } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {  
    $ip = getenv('HTTP_X_FORWARDED_FOR');  
  } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {  
    $ip = getenv('REMOTE_ADDR');  
  } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {  
    $ip = $_SERVER['REMOTE_ADDR'];  
  }  
  return preg_match ( '/[/d/.]{7,15}/', $ip, $matches ) ? $matches [0] : '';  
}  
 
10.字符截取 支持UTF8/GBK
/** 
* 字符截取 支持UTF8/GBK 
* @param $string 
* @param $length 
* @param $dot 
*/  
function str_cut($string, $length, $dot = '...') {  
  $strlen = strlen($string);  
  if($strlen <= $length) return $string;  
  $string = str_replace(array(' ',' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), array('∵',' ', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), $string);  
  $strcut = '';  
  if(strtolower(CHARSET) == 'utf-8') {  
    $length = intval($length-strlen($dot)-$length/3);  
    $n = $tn = $noc = 0;  
    while($n < strlen($string)) {  
      $t = ord($string[$n]);  
      if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {  
        $tn = 1; $n++; $noc++;  
      } elseif(194 <= $t && $t <= 223) {  
        $tn = 2; $n += 2; $noc += 2;  
      } elseif(224 <= $t && $t <= 239) {  
        $tn = 3; $n += 3; $noc += 2;  
      } elseif(240 <= $t && $t <= 247) {  
        $tn = 4; $n += 4; $noc += 2;  
      } elseif(248 <= $t && $t <= 251) {  
        $tn = 5; $n += 5; $noc += 2;  
      } elseif($t == 252 || $t == 253) {  
        $tn = 6; $n += 6; $noc += 2;  
      } else {  
        $n++;  
      }  
      if($noc >= $length) {  
        break;  
      }  
    }  
    if($noc > $length) {  
      $n -= $tn;  
    }  
    $strcut = substr($string, 0, $n);  
    $strcut = str_replace(array('∵', '&', '"', "'", '“', '”', '—', '<', '>', '·', '…'), array(' ', '&', '"', ''', '“', '”', '—', '<', '>', '·', '…'), $strcut);  
  } else {  
    $dotlen = strlen($dot);  
    $maxi = $length - $dotlen - 1;  
    $current_str = '';  
    $search_arr = array('&',' ', '"', "'", '“', '”', '—', '<', '>', '·', '…','∵'); 
    $replace_arr = array('&',' ', '"', ''', '“', '”', '—', '<', '>', '·', '…',' ');  
    $search_flip = array_flip($search_arr);  
    for ($i = 0; $i < $maxi; $i++) {  
      $current_str = ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];  
      if (in_array($current_str, $search_arr)) {  
        $key = $search_flip[$current_str];  
        $current_str = str_replace($search_arr[$key], $replace_arr[$key], $current_str);  
      }  
      $strcut .= $current_str;  
    }  
  }  
  return $strcut.$dot;  
}  
 
11.产生随机字符串
/** 
* 产生随机字符串 
* @param        int                $length    输出长度  
* @param        string         $chars     可选的 ,默认为 0123456789 
* @return     string         字符串 
*/  
function random($length, $chars = '0123456789') {  
  $hash = '';  
  $max = strlen($chars) - 1;  
  for($i = 0; $i < $length; $i++) {  
    $hash .= $chars[mt_rand(0, $max)];  
  }  
  return $hash;  
}  
 
12.将字符串转换为数组
/** 
* 将字符串转换为数组 
* @param  string  $data  字符串 
* @return  array  返回数组格式,如果,data为空,则返回空数组 
*/  
function string2array($data) {  
  if($data == '') return array();  
  eval("/$array = $data;");  
  return $array;  
}  
 
13.将数组转换为字符串
/** 
* 将数组转换为字符串 
* @param  array  $data    数组 
* @param  bool  $isformdata  如果为0,则不使用new_stripslashes处理,可选参数,默认为1 
* @return  string  返回字符串,如果,data为空,则返回空 
*/  
function array2string($data, $isformdata = 1) {  
  if($data == '') return '';  
  if($isformdata) $data = new_stripslashes($data);  
  return addslashes(var_export($data, TRUE));  
}  
 
14.转换字节数为其他单位
/** 
* 转换字节数为其他单位 
* @param        string        $filesize        字节大小 
* @return        string        返回大小 
*/  
function sizecount($filesize) {  
        if ($filesize >= 1073741824) {  
                $filesize = round($filesize / 1073741824 * 100) / 100 .' GB';  
        } elseif ($filesize >= 1048576) {  
                $filesize = round($filesize / 1048576 * 100) / 100 .' MB';  
        } elseif($filesize >= 1024) {  
                $filesize = round($filesize / 1024 * 100) / 100 . ' KB';  
        } else {  
                $filesize = $filesize.' Bytes';  
        }  
        return $filesize;  
}  
 



说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
上一篇:php分页类  下一篇:curl方法实例