您好,欢迎访问一九零五行业门户网

修改ThinkPHP3.2的F方法

修改thinkphp3.2的f方法
thinkphp3.2的f采用的是序列化方式保存数据,由于f方法保存的文件名是已知的
可能造成一些数据泄露,所以在此修改f方法
直接替换tp的f方法即可function f($name, $value='', $path=data_path) {
    static $_cache  = array();
    $filename       = $path . $name . '.php';
    if ('' !== $value) {
        if (is_null($value)) {
            // 删除缓存
            return false !== strpos($name,'*')?array_map(unlink, glob($filename)):unlink($filename);
        } else {
            // 缓存数据
            $dir            =   dirname($filename);
            // 目录不存在则创建
            if (!is_dir($dir))
                mkdir($dir,0755,true);
            $_cache[$name]  =   $value;
            return file_put_contents($filename, strip_whitespace());
        }
    }
    if (isset($_cache[$name]))
        return $_cache[$name];
    // 获取缓存数据
    if (is_file($filename)) {
        $value          =   include $filename;
        $_cache[$name]  =   $value;
    } else {
        $value          =   false;
    }
    return $value;
}qq交流群:17540504
ad:真正免费,域名+虚机+企业邮箱=0元
其它类似信息

推荐信息