欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最近用的的一些小方法

程序员文章站 2022-05-19 18:56:53
...

1.获取最近七天内的日期

function get_weeks($time = '', $format='Y-m-d'){
    $time = $time != '' ? $time : time();
    //组合数据
    $date = [];
    for ($i=1; $i<=7; $i++){
        $date[$i] = date($format ,strtotime( '+' . $i-7 .' days', $time));
    }
    return $date;
}

2、编辑器里面的图片加域名替换

function replacePicUrl($content = null, $strUrl = null) {
    if ($strUrl) {
        //提取图片路径的src的正则表达式 并把结果存入$matches中
        preg_match_all("/<img(.*)src=\"([^\"]+)\"[^>]+>/isU",$content,$matches);
        if(!empty($matches)) {
            //注意,上面的正则表达式说明src的值是放在数组的第三个中
            $img = $matches[2];
        }else {
            $img = "";
        }
        if (!empty($img)) {
            $patterns= array();
            $replacements = array();
            foreach($img as $imgItem){
                $final_imgUrl = $strUrl.$imgItem;
                $replacements[] = $final_imgUrl;
                $img_new = "/".preg_replace("/\//i","\/",$imgItem)."/";
                $patterns[] = $img_new;
            }

            //让数组按照key来排序
            ksort($patterns);
            ksort($replacements);
            //替换内容
            $vote_content = preg_replace($patterns, $replacements, $content);
            return $vote_content;
        }else {
            return $content;
        }
    } else {
        return $content;
    }
}

3.获取订单编号

function order_num($table,$field){
    do{
        $order_no= date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
    }while(db($table)->where([$field=>$order_no])->find());
    return $order_no;
}

4.获取网站目录下apk的版本

// 扫描根目录下的apk文件,拿到最新的apk版本
function getApkVersion()
{
    $patch=$_SERVER['DOCUMENT_ROOT'];//获取网站根目录
    $files = scandir($patch);
    $version = 10;
    $fileName = '';

    foreach ($files as $file) {
        $match = array();
//        var_dump($file);
        if (preg_match("/(\d+)\.(\d+)\.(\d+)\.apk/i", $file, $match)) {

            if ($match[1] * 100 + $match[2]* 10+$match[3] > $version) {
                $version = $match[1] * 100 + $match[2]* 10+$match[3];
                $fileName = $match[0];
            }
            $version = max($match[1] * 100 + $match[2]* 10+$match[3], $version);
        }

    }

    return array(
        'version' => $version , 'file_name' => $fileName
    );
}

5.获取年龄

function birthday2($birthday){
    list($year,$month,$day) = explode("-",$birthday);
    $year_diff = date("Y") - $year;
    $month_diff = date("m") - $month;
    $day_diff  = date("d") - $day;
    if ($day_diff < 0 || $month_diff < 0)
        $year_diff--;
    if($year_diff<0){
        $year_diff=0;
    }
    return $year_diff;
}

6,计算两个日期相隔多少天

/*
*function:计算两个日期相隔多少年,多少月,多少天
*param string $date1[格式如:2011-11-5]
*param string $date2[格式如:2012-12-01]
*return array array('年','月','日');
*/
function diffDate($date1,$date2){
    if(strtotime($date1)>strtotime($date2)){
        $tmp=$date2;
        $date2=$date1;
        $date1=$tmp;
    }
    list($Y1,$m1)=explode('-',$date1);
    list($Y2,$m2)=explode('-',$date2);
    $Y=$Y2-$Y1;
    $m=$m2-$m1;



    return $Y;
}

7、排序

$arr=array(
array('title'=>2,'count'=>3),
array('title'=>2,'count'=>4),
array('title'=>2,'count'=>1),
)
#根据count 排序
 $count=array_column($arr,'count');
 array_multisort($count,SORT_DESC,$arr);

return $arr;

相关标签: php php