zoukankan      html  css  js  c++  java
  • 选服列表文件检测demo

    <?php
    /**
     * @doc 选服列表文件检测
     */
     
    //cdn源站目录
    $res_dir = '/data/cdn';
    $android_dir = $res_dir . '/android/server_list';
    $ios_dir = $res_dir . '/ios/server_list';
    
    read_dir($android_dir);
    read_dir($ios_dir);
    
    /*
     * 目录结构:
     * v1.0.1
     *      server_list_000001.xml
     *      server_list_000002.xml
     * v1.0.2
     *      server_list_000001.xml
     *      server_list_000002.xml
     */
    /**
     * 读跟目录
     * @param string $dir
     * @return boolean
     */
    function read_dir($dir) {
        if( ! is_dir($dir) ) {
            return false;
        }
        
        if ($handle = opendir($dir)) {
            while (false !== ($ver_dir = readdir($handle))) {
                $ver_dir2 = $dir . '/' . $ver_dir;
                if(is_dir($ver_dir2) && $ver_dir != '.' && $ver_dir != '..') {
                    if(substr($ver_dir, 0, 1) == 'v') {
                        read_sub_dir($ver_dir2, $ver_dir);
                    }
                }
            }
            closedir($handle);
        }
    }
    
    /**
     * 读版本号目录
     * @param string $dir
     * @return boolean
     */
    function read_sub_dir($dir, $ver) {
        if( ! is_dir($dir) ) {
            return false;
        }
        
        if ($handle = opendir($dir)) {
            while (false !== ($file = readdir($handle))) {
                $file2 = $dir . '/' . $file;
                if(is_file($file2) && $file != '.' && $file != '..') {
                    if(substr($file, 0, 12) == 'server_list_' && substr($file, -4) == '.xml') {
                        $channel = substr($file, 12, 6);
                        $ret = read_xml($file2);
                        echo $ver . '|' . $channel . '|' . $ret[0] . '|' . $ret[1] . "
    ";
                    }
                }
            }
            closedir($handle);
        }
    }
    
    /**
     * 分析xml文件
     * @param xml文件
     * @return array
     */
    function read_xml($xml) {
        $xml = simplexml_load_file($xml);
        $item = $xml->product[0];
        if(count($item) > 1) {
            $key = count($item) - 1;
        } else {
            $key = 0;
        }
        $ret = array(
            $item->server[$key]['id'],
            $item->server[$key]['name'],
        );
        return $ret;
    }
  • 相关阅读:
    机试指南
    Python 切片与深拷贝
    list去重,求差集,保持顺序不变
    python--coding
    python --cookbook
    H5py文件
    面向对象
    企业微信和微信公众号获取wx.config的安卓和ios的区别----踩坑
    vue+vant实现上拉加载下拉刷新(访问后台逻辑)
    vue实现前端跨域问题
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/9252601.html
Copyright © 2011-2022 走看看