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

PHP常用的方法

时间:2020-05-08 22:53:53      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:children   oca   htm   开始   判断   大小   ice   size   随机   

PHP对银行卡做掩码处理

<?php

 /*------------------------------------------------------ */
// * 对银行卡号进行掩码处理
// * @param  string $bankCardNo 银行卡号
//*  @return string             掩码后的银行卡号
/*------------------------------------------------------ */
function formatBankCardNo($bankCardNo){
    //截取银行卡号前4位
    $prefix = substr($bankCardNo,0,4);
    //截取银行卡号后4位
    $suffix = substr($bankCardNo,-4,4);
    $maskBankCardNo = $prefix." **** **** **** ".$suffix;
    return $maskBankCardNo;
}



/*------------------------------------------------------ */
// * 时间转换计算
// * @param$show_time 需要转换的时间戳
// * @return string          转换后的时间
/*------------------------------------------------------ */
function timeTran($show_time) {  
    $dur = time() - $show_time;  
    if ($dur < 0) {  
        return ‘刚刚‘;  
    } 
    if ($dur < 60) {  
        return $dur . ‘秒前‘;  
    }
    if ($dur < 3600) {  
        return floor($dur / 60) . ‘分钟前‘;  
    } 
    if ($dur < 86400) {  
        return floor($dur / 3600) . ‘小时前‘;  
    } 
    if ($dur < 259200) {//3天内  
        return floor($dur / 86400) . ‘天前‘;  
    }
    return date("Y-m-d", $show_time); 
}


/*------------------------------------------------------ */
// * 生成指定长度的随机字符串(包含大写英文字母, 小写英文字母, 数字)
// * @param int $length 需要生成的字符串的长度
// * @return string 包含 大小写英文字母 和 数字 的随机字符串
/*------------------------------------------------------ */
function random_str($length,$isupper = false){
    //生成一个包含 大写英文字母, 小写英文字母, 数字 的数组
    $arr = $isupper ? array_merge(range(‘A‘,‘H‘),range(‘J‘,‘M‘),range(‘P‘,‘Z‘),range(0,9)) : array_merge(range(‘A‘, ‘Z‘),range(0, 9), range(‘a‘, ‘z‘));
    $str = ‘‘;
    $arr_len = count($arr);
    for ($i = 0; $i < $length; $i++){
        $rand = mt_rand(0, $arr_len-1);
        $str.=$arr[$rand];
    }
    return $str;
}


/*------------------------------------------------------ */
// *   实现中文字串截取无乱码的方法
// *  @param $string 待截取的字符串
// *  @param $start   开始截取位置
// *  @param $length 截取长度
// *  @return  $string  截取后的字符串
/*------------------------------------------------------ */
function getSubstr($string, $start, $length) {
      if(mb_strlen($string,‘utf-8‘)>$length){
          $str = mb_substr($string, $start, $length,‘utf-8‘);
          return $str.‘...‘;
      }else{
          return $string;
      }
}




/*------------------------------------------------------ */
// *   验证手机号码
// *  @param $phone 手机号码
// *  @return  bool   
/*------------------------------------------------------ */
function checkMobile($phone = ‘‘){
    $preg_phone=‘/^1\d{10}$/ims‘;
    if(preg_match($preg_phone,$phone)){
        return true;
    }
    return false;

}


/*------------------------------------------------------ */
//-- 过滤掉emoji表情
/*------------------------------------------------------ */ 
function repEmoji($str){
    $str = preg_replace_callback( ‘/./u‘,function (array $match) {
                return strlen($match[0]) >= 4 ? ‘‘ : $match[0];
            },$str);
     return $str;
}



/*------------------------------------------------------ */
//-- 格式化价格
//-- @access  public
//-- @param   float   $price  价格
//-- @return  string
/*------------------------------------------------------ */
function priceFormat($price,$show_yuan = false,$type=0){    
    switch ($type){
        case 0:
            $price = number_format($price, 2, ‘.‘, ‘‘);
            break;
        case 1: // 保留不为 0 的尾数
            $price = preg_replace(‘/(.*)(\\.)([0-9]*?)0+$/‘, ‘\1\2\3‘, number_format($price, 2, ‘.‘, ‘‘));
            if (substr($price, -1) == ‘.‘) $price = substr($price, 0, -1);
            break;
        case 2: // 不四舍五入,保留1位
            $price = substr(number_format($price, 2, ‘.‘, ‘‘), 0, -1);
            break;
        case 3: // 直接取整
            $price = intval($price);
            break;
        case 4: // 四舍五入,保留 1 位
            $price = number_format($price, 1, ‘.‘, ‘‘);
            break;
        case 5: // 先四舍五入,不保留小数
            $price = round($price);
            break;
    }   

    if($show_yuan == false) return sprintf("%s", $price);
    else return sprintf("¥%s元", $price);
}


/*------------------------------------------------------ */
//-- * 格式化字节大小
//-- * @param number $size 字节数
//-- * @param string $delimiter 数字和单位分隔符
//-- * @return string
/*------------------------------------------------------ */
function formatBytes($size, $delimiter = ‘‘) {
$units = array(‘B‘, ‘KB‘, ‘MB‘, ‘GB‘, ‘TB‘, ‘PB‘);
for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;
return round($size, 2) . $delimiter . $units[$i];
}






/*------------------------------------------------------ */ //-- 将数组转换组下拉选项 //-- @param array $arr 所有的数组 //-- @param int $selected 选中项 //-- @param boolean $islimit 是否判断限制不可选 //-- @param int $level 返回等级 //-- @param int $kd_type 快递类型:0 快递100; 1 快递鸟 //-- @return string /*------------------------------------------------------ */ function arrToSel(&$rows = array(), $selected = 0, $islimit = false, $level = 0 ){ $select = ‘‘; $selected = explode(‘,‘,$selected); foreach ($rows AS $key=>$val){ if (is_array($val) == false){ $selected = (in_array($key,$selected)) ? "selected=‘selected‘" : ‘‘; $select .= ‘<option value="‘.$key.‘" ‘.$selected.‘>‘.$val.‘</option>‘; continue; } if ($level > 0 && $val[‘level‘] > $level) continue; $select .= ‘<option ‘; if ($islimit === true && $val[‘children‘] != $val[‘id‘] ){ $val[‘id‘] = ‘‘; $select .= ‘ style="background:#999;" ‘; } if (isset($val[‘status‘]) && $val[‘status‘] == 0){ $select .= ‘ style="color:#CCC;" ‘; }elseif (isset($val[‘is_sys‘]) && $val[‘is_sys‘] == 1){ $select .= ‘ style="color:#ff0000;" ‘; } $text = htmlspecialchars(strip_tags($val[‘name‘])); if (empty($val[‘dict_val‘]) == false){ $select .= ‘ value="‘.$val[‘ext_val‘].‘" ‘; $selval = $val[‘ext_val‘]; }else{ $select .= ‘ value="‘.$val[‘id‘].‘" ‘; $selval = $val[‘id‘]; } $select .= (in_array($selval,$selected)) ? "selected=‘selected‘" : ‘‘; $select .= ‘ data-text="‘.$text.‘" label="‘.$text.‘" >‘; if (isset($val[‘icon‘])) $select .= $val[‘icon‘]; $select .= $text; $select .= ‘</option>‘; } return $select; } /*------------------------------------------------------ */ //-- 返回一个带有缩进级别的数组 /*------------------------------------------------------ */ function returnRecArr(&$rows){ $newrows = array(); foreach ($rows as $key=>$row){ $newrows[$row[‘pid‘]][$row[‘id‘]] = $row; } return $newrows; } /*------------------------------------------------------ */ //-- 创建目录 /*------------------------------------------------------ */ function makeDir($folder){ $reval = false; if (!file_exists($folder)){ /* 如果目录不存在则尝试创建该目录 */ @umask(0); /* 将目录路径拆分成数组 */ preg_match_all(‘/([^\/]*)\/?/i‘, $folder, $atmp); /* 如果第一个字符为/则当作物理路径处理 */ $base = ($atmp[0][0] == ‘/‘) ? ‘/‘ : ‘‘; /* 遍历包含路径信息的数组 */ foreach ($atmp[1] as $val){ if (‘‘ != $val){ $base .= $val; if (‘..‘ == $val || ‘.‘ == $val){ /* 如果目录为.或者..则直接补/继续下一个循环 */ $base .= ‘/‘; continue; } }else{continue;} $base .= ‘/‘; if (!file_exists($base)){ /* 尝试创建目录,如果创建失败则继续循环 */ if (@mkdir(rtrim($base, ‘/‘), 0777)){ @chmod($base, 0777); $reval = true; } } } }else{ /* 路径已经存在。返回该路径是不是一个目录 */ $reval = is_dir($folder); } clearstatcache(); return $reval; } /** * 写入日志 * @param string|array $values * @param string $dir * @return bool|int */ function _log($values, $dir) { if (is_array($values)) $values = print_r($values, true); // 日志内容 $content = ‘[‘ . date(‘Y-m-d H:i:s‘) . ‘]‘ . PHP_EOL . $values . PHP_EOL . PHP_EOL; try { // 文件路径 $filePath = $dir . ‘/logs/‘; // 路径不存在则创建 !is_dir($filePath) && mkdir($filePath, 0755, true); // 写入文件 return file_put_contents($filePath . date(‘Ymd‘) . ‘.log‘, $content, FILE_APPEND); } catch (\Exception $e) { return false; } } /*------------------------------------------------------ * 校验日期格式是否正确 * @param string $date 日期 * @param string $formats 需要检验的格式数组 * @return boolean ------------------------------------------------------ */ function checkDateIsValid($date, $formats = array("Y-m-d H:i:s","Y-m-d H:i")){ $unixTime = strtotime($date); if (!$unixTime) return false; //strtotime转换不对,日期格式显然不对 //校验日期的有效性,只要满足其中一个格式就OK if (!is_array($formats)) $formats = explode(‘,‘,$formats); foreach ($formats as $format) { if (date($format, $unixTime) == $date) return true; } return false; } /** * 获取当前页面完整URL地址 */ function getUrl($val=‘‘,$valb=‘‘,$var=array()){ $sys_protocal = isset($_SERVER[‘SERVER_PORT‘]) && $_SERVER[‘SERVER_PORT‘] == ‘443‘ ? ‘https://‘ : ‘http://‘; if($valb == ‘img‘){ if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).$val; }elseif($valb == ‘url‘){ $var[‘token‘] = $GLOBALS[‘userinfo‘][‘token‘]; if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).url($val,$var); }elseif($valb == ‘_url‘){ $var[‘token‘] = $GLOBALS[‘userinfo‘][‘token‘]; if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).url($val,$var); } $php_self = $_SERVER[‘PHP_SELF‘] ? $_SERVER[‘PHP_SELF‘] : $_SERVER[‘SCRIPT_NAME‘]; $path_info = isset($_SERVER[‘PATH_INFO‘]) ? $_SERVER[‘PATH_INFO‘] : ‘‘; $relate_url = isset($_SERVER[‘REQUEST_URI‘]) ? $_SERVER[‘REQUEST_URI‘] : $php_self.(isset($_SERVER[‘QUERY_STRING‘]) ? ‘?‘.$_SERVER[‘QUERY_STRING‘] : $path_info); return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).$relate_url; } /** * 获取url 中的各个参数 类似于 pay_code=alipay&bank_code=ICBC-DEBIT * @param type $str * @return type */ function parseUrlParam($str){ $data = array(); $str = explode(‘?‘,$str); $str = end($str); $parameter = explode(‘&‘,$str); foreach($parameter as $val){ $tmp = explode(‘=‘,$val); $data[$tmp[0]] = $tmp[1]; } return $data; }

 

PHP常用的方法

标签:children   oca   htm   开始   判断   大小   ice   size   随机   

原文地址:https://www.cnblogs.com/ccw869476711/p/12853391.html

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