我是靠谱客的博主 忧伤钢笔,最近开发中收集的这篇文章主要介绍PHP检测链接是否为有效的APK文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/**
     * 查询xxx游戏是否下架
     * linux crontab 每周1的3点到5点之间的每小时5分都进行游戏检测下架工作
     * 5 3-5 * * 1 /usr/bin/curl http://xxx.com/v1/is_games_null
     * @Author   wave
     * @DateTime 2019-04-28 17:00:09
     * @return   Null
     */
    public function is_games_null()
    {
        set_time_limit(0);
        $data=Db::name('Cron')->find(1);
        /**
         * 查询当前时间是否大于存储的时间
         * 如果当前时间大于数据库存储的时间,
         * 那么就执行
         * 否则就没有到1周,不允许执行
         */
        if(isset($data['create_time']) && time() < $data['create_time'])
        {
            die;
        }

        $counts=$this->gameinfo->field("id")->where('platform','=',5)->where("state",'=',1)->count();
        $counts=ceil($counts/10);
        if(!isset($data))
        {
            /**
             * 如果没有定时的任务,那么添加进去
             */
            $data['limit']=0;
            $data['count']=$counts;
            $data['create_time']=time();
            $data['id']=Db::name('Cron')->insertGetId($data);
        }

        /**
         * 如果有定时的任务那么取出来。
         */
    
        $gameModel=$this->gameinfo;
        $count=$data['limit']+5;
        for($i=$data['limit'];$i<=$count;$i++)
        {
            $games=[];
            $games=$gameModel->field("id,androiddownload")->where('platform','=',5)->where("state",'=',1)->limit($i,10)->select()->toArray();
            $shelf=array();
            $index=0;
            foreach($games as $key=>$val)
            {
                if(strpos($val['androiddownload'],'99maiyou') !== false)
                {
                    $is_apk_status=$this->is_apk_status($val['androiddownload']);
                    if($is_apk_status === 3 )
                    {
                        $gameModel->where('id',$val['id'])->update(['state' =>0]);
                        $shelf[$index]['gid']=$val['id'];
                        $shelf[$index]['create_time']=time();
                    }
                }else{
                    continue;
                }
                $index++;
            }
           Db::name('Shelf')->insertAll($shelf);
        }
        /**
         * 如果,任务跟总数一样或者大于总数,那么就是执行完了。
         */
        if($data['limit']>=$data['count'])
        {
            $data1['limit']=0;
            $data1['create_time']=time()+86400*7;
        }else{
            $data1['limit']=$count;
        }
        $data1['count']=$counts;
        Db::name('Cron')->where("id",$data['id'])->update($data1);
    }
    /**
     * 检测链接的APK文件什么状态
     * @Author   wave
     * @DateTime 2019-04-28T16:59:50+0800
     * @return   1 正在运行的游戏
     * @return   2 没有分包的游戏
     * @return   3 下架的游戏
     */
    protected function is_apk_status($url)
    {
        $headers=get_headers($url,true);
        //判断Location是否存在,如果Location存在,并且是数组,那么就是已经上线的游戏
        return isset($headers['Location']) ? (is_array($headers['Location']) ? 1 : 2 ) : 3;
    }

 

最后

以上就是忧伤钢笔为你收集整理的PHP检测链接是否为有效的APK文件的全部内容,希望文章能够帮你解决PHP检测链接是否为有效的APK文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部