工作中PHP常用方法函数整理

1.打印信息,方便排错

function debug($data){
 
    if(empty($data)){
        var_dump($data);
        die;
    }
 
    if(!is_array($data)){
        echo "<pre style='background-color: #000;color: #fff;font-size: 14px;min-height: 100px;line-height: 50px;'>";
        echo "<span style='margin-left: 20px;font-size: 18px;'>";
        print_r($data);
        echo "</span>";
        echo "</pre>";
        die;
    }
 
    echo "<pre style='background-color: #000;color: #fff;font-size: 14px;min-height: 100px;'>";
    echo "<br /><br /><br /><span style='margin-left: 20px;font-size: 13px;'>";
    print_r($data);
    echo "</span><br /><br /><br />";
    echo "</pre>";
    die;
}
debug("123");

2.获取父子关系树

/* @param   $data  array   数据
* @param   $pid   int     父类关系值
* @param   $parentFieldstring  父类字段
* @param $pkField string  主键字段
* return array
*/
function getTreesPro($data,$pid='0',$parentField='pid',$pkField='id'){
    $tree =array();
    foreach($data as $k=>$v){ 
        if($v[$parentField] == $pid){
            $temp = getTreesPro($data,$v[$pkField]);//$data是对象则改为$v->$pkField
            if(!empty($temp)){
            //分层
                $v['son']= getTreesPro($data,$v[$pkField]);
            }
            $tree[] = $v;
        }
    }
    return $tree;
}

3.数组转对象和对象转数组

//数组转对象
function arrayToObject($arr){
    if(is_array($arr)){
        return (object) array_map(__FUNCTION__, $arr);
    }else{
        return $arr;
    }
}
//对象转数组
function object2array(&$object) {
    $object =  json_decode( json_encode( $object),true);
    return  $object;
}

4.生成唯一订单

function generateJnlNo() {
	date_default_timezone_set('PRC');
	$yCode    = array('A','B','C','D','E','F','G','H','I','J');
	$orderSn  = '';
	$orderSn .= $yCode[(intval(date('Y')) - 1970) % 10];
	$orderSn .= strtoupper(dechex(date('m')));
	$orderSn .= date('d').substr(time(), -5);
	$orderSn .= substr(microtime(), 2, 5);
	$orderSn .= sprintf('%02d', mt_rand(0, 99));
	return $orderSn;
}

5.已过去时间计算

function nicetime($date){
	if(empty($date)) { return "No date provided"; }
	$periods = array("秒","分钟","小时","天","周","月","年","decade");
	$lengths = array("60","60","24","7","4.35","12","10");
	$now = time();
	$unix_date = $date; // check validity of date
	if($now-$unix_date > 86400*7-1){
		return 'error';
	}
	if(empty($unix_date)) { return "Bad date"; } // is it future date or past date
	if($now > $unix_date) {
		$difference = $now - $unix_date; $tense = "之前";
	}else{
		$difference = $unix_date - $now; $tense = "from now";
	}
	for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
		$difference /= $lengths[$j];
	}
	$difference = round($difference);
	if($difference != 1) { $periods[$j].=""; }
	return "$difference$periods[$j]{$tense}";
}
echo nicetime(1545642821);

6.获取文件目录文件名

function getdir($path,$save=false){
	$arr=array();
	if(is_dir($path)){
		$path=str_replace('\\', '/', $path);
		$path=rtrim($path,'/');
		$dir = opendir($path);
		$ar=array('.','..');

		while(($file=readdir($dir))!==false){
			if(!in_array($file,$ar)){
			if($save){
				$save=rtrim($save,'/');
				//$save=ltrim($save,'/');
				$arr[]=$save.'/'.$file;
				}else{
				$arr[]=$file;
				}
			}
		}
	closedir($dir);
	}
	return $arr;
}

7.中英文字符截取成数组

function mb_str_split ($string, $len=1) {
	$start = 0;
	$strlen = mb_strlen($string);
	while ($strlen) {
		$array[] = mb_substr($string,$start,$len,"utf8");
		$string = mb_substr($string, $len, $strlen,"utf8");
		$strlen = mb_strlen($string);
	}
	return $array;
}
debug(mb_str_split("时候shf山地sd"));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值