php常用函数

Posted 天 梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php常用函数相关的知识,希望对你有一定的参考价值。

格式化金额为整数或两位小数

/**
 * 格式化金额为整数或两位小数
 * @param  float $money 金额
 * @param  bool $flag true 四舍五入,false向下取2位小数,小数点第三3位后舍去
 * @return string 整数或两位小数
 */
function present($money, $flag = true)
{
    $money = $flag ? sprintf("%.2f", $money) : (floor(bcmul($money, 100))/100);
    return number_format($money, 2, ‘.‘, ‘‘);
}

过滤客户端提交的数据

/**
 * 过滤客户端提交的数据
 * 转义字符或数组为html,htmlspecialchars 替代函数,转义<>"‘,支持数组
 * @param string or array $array:要转义的字符或数组
 * @param string $quote:ENT_COMPAT:转换双引号。ENT_QUOTES(默认):单双引号都转义,ENT_NOQUOTES:不转义单双引号
 */
function htmlChars(&$array, $quote=ENT_QUOTES)
{
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            $array[$key] = htmlChars($value, $quote);
        }
    } else {
        $array = htmlspecialchars($array, $quote);
    }
    return $array;
}

截取字符串

/**
 * 截取字符串
 * @param string $string:要截取的字符串
 * @param int $length:截取的宽度,不是字节数
 * @param string $dot:截取的后缀
 * @param string $charset:字符编码
 * @return string
 */
function cutStr($string, $length, $dot=‘...‘, $charset=‘utf-8‘)
{
    if (strlen($string) <= $length) {
        return $string;
    }
    $str = str_replace(array(‘&‘,‘"‘,‘<‘,‘>‘,‘ ‘), array(‘&‘,‘"‘,‘<‘,‘>‘,‘ ‘), $string);
    $strcut = ‘‘;
    if (strtolower($charset) == ‘utf-8‘) {
        $n = $tn = $noc = 0;
        while ($n < strlen($str)) {
            $t = ord($str[$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($str, 0, $n);
    } else {
        for ($i = 0; $i < $length; $i++) {
            $strcut .= ord($str[$i]) > 127 ? $str[$i].$str[++$i] : $str[$i];
        }
    }
    $strcut = str_replace(array(‘"‘,‘<‘,‘>‘), array(‘"‘,‘<‘,‘>‘), $strcut);
    $strcut != $string && $strcut .= $dot;
    return $strcut;
}

截取中文字符串

/**
 * 截取中文字符串,支持gb2312,gbk,utf-8,big5
 * @param string $str 要截取的字串
 * @param int $start 截取起始位置
 * @param int $length 截取长度
 * @param string $charset utf-8|gb2312|gbk|big5 编码
 * @param $suffix 是否加尾缀
 */
function chCutStr($str, $start = 0, $length, $charset = "utf-8", $suffix = ‘...‘)
{
    if (function_exists(‘mb_substr‘)) {
        if (mb_strlen($str, $charset) <= $length)
            return $str;
        $slice = mb_substr($str, $start, $length, $charset);
    } 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);
        if (count($match[0]) <= $length)
            return $str;
        $slice = join("", array_slice($match[0], $start, $length));
    }
    if ($suffix == false)
        return $slice;
    return $slice . $suffix;
}

对象转数组

/**
 * 对象转数组
 * @param $array
 * @return
 */
function objectToArray($array)
{
    if (is_object($array)) {
        $array = (array)$array;
    }
    if (is_array($array)) {
        foreach ($array as $key => $value) {
            $array[$key] = objectToArray($value);
        }
    }
    return $array;
}

  

以上是关于php常用函数的主要内容,如果未能解决你的问题,请参考以下文章

C#常用代码片段备忘

56个PHP开发常用代码

php 一个自定义的try..catch包装器代码片段,用于执行模型函数,使其成为一个单行函数调用

超级有用的9个PHP代码片段

常用Javascript代码片段集锦

nodejs常用代码片段