码迷,mamicode.com
首页 > Web开发 > 详细

php常用函数(二)

时间:2020-03-31 23:18:50      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:value   strlen   amp   bool   length   charset   reg   中文   rcu   

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

/**
 * 格式化金额为整数或两位小数
 * @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常用函数(二)

标签:value   strlen   amp   bool   length   charset   reg   中文   rcu   

原文地址:https://www.cnblogs.com/sai564/p/12609080.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!