2019年5月

1.每分钟定时执行一次规则:
每1分钟执行: */1 * * * *或者* * * * *
每5分钟执行: */5 * * * *

2.每小时定时执行一次规则:
每小时执行: 0 * * * *或者0 */1 * * *
每天上午7点执行:0 7 * * *
每天上午7点10分执行:10 7 * * *

3.每天定时执行一次规则:
每天执行 0 0 * * *

4.每周定时执行一次规则:
每周执行 0 0 * * 0

5.每月定时执行一次规则:
每月执行 0 0 1 * *

6.每年定时执行一次规则:
每年执行 0 0 1 1 *

7.其他例子
5 * * * * 指定每小时的第5分钟执行一次ls命令
30 5 * * * ls 指定每天的 5:30 执行ls命令
30 7 8 * * ls 指定每月8号的7:30分执行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15 * * * * ls 每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]

<script type="text/javascript">
    /**
     * 到底加载
     */
    var flag=1;
    var rgb = 0;
    $(window).bind("scroll", function () {
        if(getScrollHeight() < getDocumentTop() + getWindowHeight() + 250){ //+200是底部,到250留点距离
            //当滚动条到底时,这里是触发内容
            //异步请求数据,局部刷新dom
            pageNum++;
            //ajax_function()
//            if (flag == 1) {
//                flag=0;
//                var temp = `<div style="height:500px; background:rgb(100,${rgb},${rgb});"></div>`;
//                $('body').append(temp);
//                rgb = rgb + 20;
//                flag = 1;
//            }
        }
    });

    //文档高度
    function getDocumentTop() {
        var scrollTop =  0, bodyScrollTop = 0, documentScrollTop = 0;
        if (document.body) {
            bodyScrollTop = document.body.scrollTop;
        }
        if (document.documentElement) {
            documentScrollTop = document.documentElement.scrollTop;
        }
        scrollTop = (bodyScrollTop - documentScrollTop > 0) ? bodyScrollTop : documentScrollTop;
        console.log("scrollTop:"+scrollTop);
        return scrollTop;
    }

    //可视窗口高度
    function getWindowHeight() {
        var windowHeight = 0;
        if (document.compatMode == "CSS1Compat") {
            windowHeight = document.documentElement.clientHeight;
        } else {
            windowHeight = document.body.clientHeight;
        }
        console.log("windowHeight:"+windowHeight);
        return windowHeight;
    }

    //滚动条滚动高度
    function getScrollHeight() {
        var scrollHeight = 0, bodyScrollHeight = 0, documentScrollHeight = 0;
        if (document.body) {
            bodyScrollHeight = document.body.scrollHeight;
        }
        if (document.documentElement) {
            documentScrollHeight = document.documentElement.scrollHeight;
        }
        scrollHeight = (bodyScrollHeight - documentScrollHeight > 0) ? bodyScrollHeight : documentScrollHeight;
        console.log("scrollHeight:"+scrollHeight);
        return scrollHeight;
    }
</script>

/***
     * @return \think\response\Json
     * 更新城市json数据
     */
    public function makejsonareas(){
        set_time_limit(0);
        $pro = Db::table('up_area')
            ->where('level',1)
//            ->where('district_id',1001)
            ->field('district_id id,district name')
            ->select();
        $shi = Db::table('up_area')
            ->where('level',2)
            ->field('district_id id,district name,pid parentId')
            ->select();
        $qu = Db::table('up_area')
            ->where('level',3)
            ->field('district_id id,district name,pid parentId')
            ->select();
        $street = Db::table('up_area')
            ->where('level',4)
            ->field('district_id id,district name,pid parentId')
            ->select();
        foreach ($qu as $k=>$v){
            foreach ($street as $kk=>$vv){
                if($vv['parentId'] == $v['id']){
                    $qu[$k]['sub'][] = $vv;
                }
            }
        }
        foreach ($shi as $k=>$v){
            foreach ($qu as $kk=>$vv){
                if($vv['parentId'] == $v['id']){
                    $shi[$k]['sub'][] = $vv;
                }
            }
        }
        foreach($pro as $k=>$v){
            $pro[$k]['parentId'] = 0;
            foreach ($shi as $kk=>$vv){
                if($vv['parentId'] == $v['id']){
                    $pro[$k]['sub'][] = $vv;
                }
            }
        }
        $root = $_SERVER['DOCUMENT_ROOT'];
        $myfile = fopen("$root/static/test.json", "w") or die("Unable to open file!");
        $txt = json_encode($pro);
        fwrite($myfile, $txt);
        fclose($myfile);
        return json(['code' => 200, 'msg' => '更新成功']);
    }

function is_idcard( $id )
    {
        $id = strtoupper($id);
        $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/";
        $arr_split = array();
        if(!preg_match($regx, $id))
        {
            return FALSE;
        }
        if(15==strlen($id)) //检查15位
        {
            $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/";

            @preg_match($regx, $id, $arr_split);
            //检查生日日期是否正确
            $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
            if(!strtotime($dtm_birth))
            {
                return FALSE;
            } else {
                return TRUE;
            }
        }
        else      //检查18位
        {
            $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/";
            @preg_match($regx, $id, $arr_split);
            $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4];
            if(!strtotime($dtm_birth)) //检查生日日期是否正确
            {
                return FALSE;
            }
            else
            {
                //检验18位身份证的校验码是否正确。
                //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
                $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
                $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
                $sign = 0;
                for ( $i = 0; $i < 17; $i++ )
                {
                    $b = (int) $id{$i};
                    $w = $arr_int[$i];
                    $sign += $b * $w;
                }
                $n = $sign % 11;
                $val_num = $arr_ch[$n];
                if ($val_num != substr($id,17, 1))
                {
                    return FALSE;
                }
                else
                {
                    return TRUE;
                }
            }
        }

    }
$idc=is_idcard("身份证号码"); 
if($idc){echo "正确";}else{echo "错误";}