1.basename() 函数返回路径中的文件名部分。
$path = __FILE__;//获取当前文件路径
echo basename($path,".php");
输出:文件当前文件的名称
2.dirname() 函数返回路径中的目录部分。
$path = __FILE__;
var_dump(dirname($path));
输出:string(15) "D:\phpStudy\WWW"
3.pathinfo() 函数以数组的形式返回文件路径的信息。
$path = __FILE__;
var_dump(pathinfo($path));
输出:array(4) { ["dirname"]=> string(15) "D:\phpStudy\WWW" ["basename"]=> string(5) "2.php" ["extension"]=> string(3) "php" ["filename"]=> string(1) "2" }
4.filetype() 函数返回指定文件或目录的类型。
本函数的结果会被缓存。请使用 clearstatcache() 来清除缓存。
$path = __FILE__;
var_dump(filetype($path));
输出:string(4) "file",表示文件
$path = __FILE__;
var_dump(filetype(dirname($path)));
输出:string(3) "dir",表示文件夹
5.fstat() 函数返回关于打开文件的信息。
$path = __FILE__;
// 打开文件
$fp = fopen($path, "r");
// 'r'表示只读方式打开,将文件指针指向文件头。
// 'r+'表示读写方式打开,将文件指针指向文件头。
// 'w'表示写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
// 'w+'表示读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
// 'a'表示写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
// 'a+'表示读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
// 取得统计信息
$fstat = fstat($fp);
// 关闭文件 如果成功则返回 true,否则返回 false。
fclose($fp);
// 只显示关联数组部分
var_dump(array_slice($fstat,13));
输出:array(13) { ["dev"]=> int(0) ["ino"]=> int(0) ["mode"]=> int(33206) ["nlink"]=> int(1) ["uid"]=> int(0) ["gid"]=> int(0) ["rdev"]=> int(0) ["size"]=> int(220) ["atime"]=> int(1514203676) ["mtime"]=> int(1514879951) ["ctime"]=> int(1514203676) ["blksize"]=> int(-1) ["blocks"]=> int(-1) }
6.filesize() 函数返回指定文件的大小。
若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
$filename = __FILE__;
echo $filename . ': ' . filesize($filename) . ' bytes';
输出:D:\phpStudy\WWW\2.php: 133 bytes
7.disk_total_space() 函数返回指定目录的磁盘总大小。参数是一个目录的字符串。该函数将根据相应的文件系统或磁盘分区返回所有的字节数。
var_dump(disk_total_space('C:'));
输出:float(123214659584) 表示C盘的大小
8.fileatime() 函数返回指定文件的上次访问时间。
$file=__FILE__;
echo fileatime($file);
输出:1514203676 时间戳
实例:递归实现文件删除
//传入目录路径
private function _deleteDir($R)
{
//打开文件目录 然后读取其内容
$handle = opendir($R);
//便利文件目录 并判断目录是否存在
while (($item = readdir($handle)) !== false) {
//判断目录结构
if ($item != '.' and $item != '..') {
//判断当前的文件是目录还是文件
if (is_dir($R . '/' . $item)) {
//如果是目录再次 调用自己继续便利
$this->_deleteDir($R . '/' . $item);
} else {
//删除文件
if (!unlink($R . '/' . $item))
die('error!');
}
}
}
//closedir() 函数关闭目录
closedir($handle);
//rmdir函数删除空的目录。成功返回true
return rmdir($R);
}
实现读取文件夹下文件的大小
header('content-type:text/html;charset=utf8');
$path=".";//.是当前目录,你可以换成自己的目录地址
foreach(scandir($path) as $v){
if(!is_dir($v)){//如果不是目录,就是文件了
$size=filesize($v);
echo "文件:".$v." 大小:".byte_format($size)."";//单位是kb
}
}
//格式化函数
function byte_format($size, $dec=2){
$a = array("B", "KB", "MB", "GB", "TB", "PB");
$pos = 0;
while ($size >= 1024) {
$size /= 1024;
$pos++;
}
return round($size,$dec)." ".$a[$pos];
}