fm_func('fm'); $_HI['setting']['filemode'] = 0777; //该数字不可加引号 //判断文件是否存在 /* @filename 文件名 @route 相对于yii安装根目录的路径 */ function fmFunc_file_checkExist($filename,$route) { global $_FM; $file = $route.$filename; $file = FM_YII_ROOT.$file; if(file_exists($file)){ return true; } return false; } //创建目录 /* @path 文件目录 */ function fmFunc_file_mkdirs($path) { if (!is_dir($path)) { fmFunc_file_mkdirs(dirname($path)); mkdir($path); } return is_dir($path); } //写文件 /* @filename 文件名 @data 要写入的数据 */ function fmFunc_file_write($filename,$data) { global $_GPC; global $_HI; global $_FM; fmFunc_file_mkdirs(dirname($filename)); file_put_contents($filename, $data); @chmod($filename, $_HI['setting']['filemode']); return is_file($filename); } //读文件 /* @filename 完整文件名 */ function fmFunc_file_read($filename) { global $_FM; $filename = FM_YII_ROOT.$filename; if (!is_file($filename)) { return false; } return file_get_contents($filename); } //移动文件 /* @filename 完整文件名 @destination 要移入的目标路径 */ function fmFunc_file_move($filename,$destination) { global $_GPC; global $_HI; global $_FM; $filename = FM_YII_ROOT.$filename; fmFunc_file_mkdirs(dirname($dest)); if (is_uploaded_file($filename)) { move_uploaded_file($filename, $dest); } else { rename($filename, $destination); } @chmod($filename, $_HI['setting']['filemode']); return is_file($destination); } //复制文件 /* @src 源文件(要被复制的文件) @des 目标文件 @filter 过滤器 */ function fmFunc_file_copy($src, $des, $filter) { global $_FM; $dir = opendir($src); @mkdir($des); while (false !== ($file = readdir($dir))) { if (($file != '.') && ($file != '..')) { if (is_dir($src . '/' . $file)) { fmFunc_file_copy($src . '/' . $file, $des . '/' . $file, $filter); } elseif (!in_array(substr($file, strrpos($file, '.') + 1), $filter)) { copy($src . '/' . $file, $des . '/' . $file); } } } closedir($dir); } //删除目录 /* @path 文件目录 @clean 是否清空 */ function fmFunc_file_rmdirs($path, $clean = false) { if (!is_dir($path)) { return false; } $files = glob($path . '/*'); if ($files) { foreach ($files as $file) { is_dir($file) ? fmFunc_file_rmdirs($file) : @unlink($file); } } return $clean ? true : @fmFunc_file_rmdir($path); } //删除指定文件(永久删除) /* @file 文件名(含路径) */ function fmFunc_file_delete($file) { if (empty($file)) { return FALSE; } if (file_exists($file)) { @unlink($file); } if (file_exists(FM_YII_ROOT . '/' . $file)) { @unlink(FM_YII_ROOT . '/' . $file); } return TRUE; } //列出目录树 /* @path 文件目录 @include 文件名中包含的某些特定元素 */ function fmFunc_file_tree($path, $include = array()) { $files = array(); if (!empty($include)) { $ds = glob($path . '/{' . implode(',', $include) . '}', GLOB_BRACE); } else { $ds = glob($path . '/*'); } if (is_array($ds)) { foreach ($ds as $entry) { if (is_file($entry)) { $files[] = $entry; } if (is_dir($entry)) { $rs = fmFunc_file_tree($entry); foreach ($rs as $f) { $files[] = $f; } } } } return $files; } //文件随机命名 /* @dir 文件目录 @ext 文件扩展名 */ function fmFunc_file_randomName($dir, $ext) { do { $filename = random(32) . '.' . $ext; } while (file_exists($dir . $filename)); return $filename; } /*______________________________________数据文件类操作______________________________*/ //写数据文件(data目录) /* @filename PHP文件名 @route 相对于数据根目录data的路径 @data 要写入的数据 */ function fmFunc_file_dataWrite($filename,$data,$uri=null,$origin_cache_key=null) { global $_FM; $filelink = 'data/'; $file = $filelink.$filename; $file = FM_YII_ROOT.$file; $file = $file.'.php'; // 在数据目录中添加一个文件并写入内容信息 $content = "