F函数修改成对深目录支持

浏览:360 发布日期:2011/11/16
- 普通 - 未处理
function F($name, $value='', $path=DATA_PATH) {
static $_cache = array();
$filename = $path . $name . '.php';
if ('' !== $value) {
if (is_null($value)) {
// 删除缓存
return unlink($filename);
} else {
// 缓存数据
$dir = dirname($filename);
// 目录不存在则创建
if (!is_dir($dir))
mkdir($dir);
return file_put_contents($filename, "");
}
}
if (isset($_cache[$name]))
return $_cache[$name];
// 获取缓存数据
if (is_file($filename)) {
$value = include $filename;
$_cache[$name] = $value;
} else {
$value = false;
}
return $value;
}

在应用多级目录管理时我用到了下面语法无法自动创建文件夹
F("Tags/tagslist/".$_SERVER['REDIRECT_URL'],$this->tagslist);
后来查找到F函数中没有对多级目录做处理,直接使用mkdir,无法满足要求。建议修改如下
//新增函数
function create_dir($path)
{
if (!file_exists($path))
{
create_dir(dirname($path));
mkdir($path, 0777);
}
}
//代码修改处
if (!is_dir($dir))
create_dir($dir);
评论()
后面还有条评论,点击查看>>