php常用函数

2026-05-02 23:32:37 248
分类:php

常用公共函数

自定义公共函数,用得上就加上吧,用不着别添加。由于系统默认函数也挺多的,不要搞混淆了。

/**
 * 浏览器友好的变量输出
 * @param string $var 要打印的字符串
 * @param boolean $exit 程序是否终止
 */
function print_f($var,$exit=true) {
    if (ini_get('html_errors')) {
        $output = print_r($var, true);
        $output = '<pre>'.htmlspecialchars($output, ENT_QUOTES).'</pre>';
    } 
    else {
        $output = print_r($var, true);
    }
    echo($output);
    if($exit)exit();
}

/**
 * 将字节转化为B、KB、MB、BG
 * @param int $size 字节
 * @return string
 */
function format_bytes($size) {
    $units = array('B', 'KB', 'MB', 'GB');
    for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;
    return round($size, 2).$units[$i];
}

/**
 * 多级树
 * @param array $arr 数组
 * @param int $id 父级id
 * @param int $level 级别
 * @return array 多级树
 */
function node_tree($arr, $pid=0, $level=1) {
    static $array = array();
    foreach ($arr as $v) {
        if ($v['pid'] == $pid) {
            $v['level'] = $level;
            $array[] = $v;
            node_tree($arr, $v['id'], $level + 1);
        }
    }
    return $array;
}

/**
 * 通用加密解密
 * @param mixed $plaintext 加密文本
 * @param mixed $operation E加密,D解密
 * @param mixed $key 加密key
 * @return string 加密后的字符串
 */
function aes_encrypt($plaintext,$operation='E',$key=''){
    $aes=new \Think\PhpAes();
    $key=$key?$key:C('KEY');
    if($operation=='E'){
        return $aes->AesEncrypt($plaintext,$key);
    }
    else{
        return $aes->AesDecrypt($plaintext,$key);
    }
}

/**
 * 判断是否是移动端
 * @return boolean
 */
function is_mobile() {
    $reg = '/iPad|iPhone|Linux|Android|iPod/i';
    preg_match($reg, $_SERVER['HTTP_USER_AGENT'], $arr);
    if (empty($arr)) {
        return false;
    } else {
        return true;
    }
}

/**
 * 删除html注释
 * @param string $content 
 * @return string
 */
function remove_comment($content){
    return preg_replace('#<!--.*?-->#' , '' , $content);
}

/**
 * 多个连续空格只保留一个
 * @param string $string 
 * @return string
 */
function merge_spaces($string){
    return preg_replace ("/\s(?=\s)/","\\1", $string);
}

/**
 * 去多余空格去换行
 * @param string $string 
 * @return string
 */
function trimall($string){
    $arr=array(" ","\t","\n","\r");
    return str_replace($arr, '', $string);    
}

/**
 * 随机字符串
 * @param int $length 字符串长度
 * @return string
 */
function rand_string($length=12)   {   
    $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
    $max = strlen($chars) - 1;    
    $hash = '';
    for($i = 0; $i < $length; $i++)   {   
        $hash .= $chars[mt_rand(0, $max)];
    }
    return $hash;
}

php常用系统函数

//替换字符串

str_replace(find,replace,string,count)

参数 描述

find 必需。规定要查找的值。

replace 必需。规定替换 find 中的值的值。

string 必需。规定被搜索的字符串。

count 可选。对替换数进行计数的变量。

例:

$str = 'abc123abc';

echo str_replace('123', '', $str);


//格式化数字(数字,保留小数点)

number_format(number,decimals,decimalpoint,separator)

参数 描述

number 必需。要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。

decimals 可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。

decimalpoint 可选。规定用作小数点的字符串。

separator 可选。规定用作千位分隔符的字符串。仅使用该参数的第一个字符。比如 "xxx" 仅输出 "x"。注释:如果设置了该参数,那么所有其他参数都是必需的。

例:

number_format(100,2);//=100.00


//四舍五入

round(number,decimals)

参数 描述

x 可选。规定要舍入的数字。

prec 可选。规定小数点后的位数


//将时间格式转为时间戳

strtotime($time, $now)


//获取时间

date($format)

例:

echo date('Y-m-d') ,输出结果:2012-03-22

echo  date('Y-m-d h:i:s'),输出结果:2012-03-22 11:00:00

echo  date('Y-m-d H:i:s'),输出结果:2012-03-22 23:00:00

echo  date('Y-m-d', time()),输出结果:2012-03-22 23:00:00(结果同上,只是多了一个时间戳参数)(时间戳转换为日期格式的方法)

echo  date('Y').'年'.date('m').'月'.date('d').'日',输出结果:2012年3月22日


//用第一个参数里的字符串,把后面数组里的每个元素连接起来,返回一个字符串。

$str=implode("-",array("a","b","c"));


//字符串分割方法,返回一个数组,用第一个参数里的字符分割后面的字符串,指定字符的前后和之间都截取,如果指定字符在开头或结尾则返回的数组开头或结尾的元素为空字符串

//没有分割到字符串就返回给数组对应元素一个空值。最后一个限制返回数组长度,可不限制,则一直分割下去。

$array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4);


//从字符串第一个参数里的指定位置开始取多长(多少个)字符,字符串中第一个字符位置从0算。

//如果第二个参数为负则从字符串结尾倒数第几个开始取多长的字符串。结尾最后一个字符算-1,截取方向总是从左到右

$str=substr("abcdefgh",0,4);