zoukankan      html  css  js  c++  java
  • WordPress 读取配置文件的函数

    /**
     * 获取和设置配置参数 支持批量定义
     * @param string|array $name 配置变量
     * @param mixed $value 配置值
     * @param mixed $default 默认值
     * @return mixed
     */
    function C( $name=null, $value=null, $default=null ) {
        static $_config = array();
        // 无参数时获取所有
        if ( empty($name) ) {
            return $_config;
        }
        // 优先执行设置获取或赋值
        if ( is_string($name) ) {
            if (!strpos($name, '.')) {
                $name = strtoupper($name);
                if (is_null($value))
                    return isset($_config[$name]) ? $_config[$name] : $default;
                $_config[$name] = $value;
                return;
            }
            // 二维数组设置和获取支持
            $name = explode('.', $name);
            $name[0]   =  strtoupper($name[0]);
            if (is_null($value))
                return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;
            $_config[$name[0]][$name[1]] = $value;
            return;
        }
        // 批量设置
        if (is_array($name)){
            $_config = array_merge($_config, array_change_key_case($name,CASE_UPPER));
            return;
        }
        return null; // 避免非法参数
    }
    
    /**
     * 加载配置文件 支持格式转换 仅支持一级配置
     * @param string $file 配置文件名
     * @param string $parse 配置解析方法 有些格式需要用户自己解析
     * @return void
     */
    function load_config($file){
        $ext  = pathinfo($file,PATHINFO_EXTENSION);
        switch($ext){
            case 'php':
                return include $file;
            case 'ini':
                return parse_ini_file($file);
            case 'yaml':
                return yaml_parse_file($file);
            case 'xml': 
                return (array)simplexml_load_file($file);
            case 'json':
                return json_decode(file_get_contents($file), true);
        }
    }
    
    #加载配置文件
    C( load_config(get_template_directory().'/config.php') );

    以上代码放在functions.PHP文件里面  

    新建 config.php

  • 相关阅读:
    sleep、yield、wait、join的区别
    Java 配置全局线程池出错
    RemoteFallbackFactory扫包:No fallbackFactory instance of type class
    JAVA CopyOnWriteArrayList 说明
    Java四种线程池
    jvm总结
    CompletableFuture基本用法【转】
    Visual Studio 当前不会命中断点的问题
    安聊系统1.0发布
    libvpx编译
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12756237.html
Copyright © 2011-2022 走看看