SConfig::_tmpData PHP Метод

_tmpData() приватный статический Метод

private static _tmpData ( $matches )
    private static function _tmpData($matches)
    {
        $key = self::$_tmpPrefix . self::$_tmpIndex++;
        self::$_tmpData[$key] = $matches[3];
        return $matches[1] . ":" . $key . ";";
    }

Usage Example

Пример #1
0
 public static function parse($configFile)
 {
     self::$_tmpPrefix = 0;
     self::$_tmpData = array();
     $cacheKey = "SConfig_Cache_" . md5(realpath($configFile));
     if (self::$CACHE) {
         if (isset(self::$_result[$cacheKey])) {
             return self::$_result[$cacheKey];
         }
         $tmp_file = self::_tmpDir() . "/" . self::$_tmpPrefix . $cacheKey;
         if (is_file($tmp_file) && filemtime($tmp_file) >= filemtime($configFile)) {
             $result = unserialize(file_get_contents($tmp_file, false));
             self::$_result[$cacheKey] = $result;
             return $result;
         }
     }
     $content = file_get_contents($configFile, false);
     //去掉注释,#号表示注释
     $content = preg_replace("/^(\\s*)#(.*)/m", "", $content);
     //保存临时变量,单引号,双引号里特殊字符
     $content = preg_replace_callback("/(\\S+?)[\\s:]+([\\'\"])(.*?)\\2;/m", array("SConfig", "_tmpData"), $content);
     //获取最直接的k,v值
     $result = self::_getKV($content);
     self::_split($content, $result);
     if (self::$CACHE) {
         file_put_contents($tmp_file, serialize($result), LOCK_EX);
         self::$_result[$cacheKey] = $result;
     }
     return $result;
 }