• 选服列表文件检测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;
    }
  • 相关阅读:
    PTA习题解析——修理牧场(2 种解法)
    MySQL——维护和用户管理
    MySQL 5+ 特性
    MySQL——增、删、改
    数字时代云计算与边缘计算的区别
    5G对工业互联网应用的影响
    物联网新商业四大趋势
    变革之下,“大数据安全”成数字化转型“必答题”
    Serverless 的初心、现状和未来
    7 个建议让 Code Review 高效又高质
  • 原文地址:https://www.cnblogs.com/lonmyblog/p/9252601.html
Copyright © 2020-2023  润新知