一 、解析路径:
1,获得文件名:
basename();
给出一个包含有指向一个文件的全路径的字符串,本函数返回基本的文件名。如果文件名是以 suffix 结束的,那这一部分也会被去掉。
例子:
<?php $path = "/home/httpd/html/index.php"; $file = basename($path,".php"); // $file is set to "index" ?>
2,得到目录部分:
dirname();
给出一个包含有指向一个文件的全路径的字符串,本函数返回去掉文件名后的目录名。
例子:
<?php $path = "/etc/passwd"; $file = dirname($path); // $file is set to "/etc" ?>
3,得到路径关联数组
pathinfo();
得到一个指定路径中的三个部分:目录名,基本名,扩展名。
例子:
<?php $pathinfo = pathinfo("www/test/index.html"); var_dump($pathinfo); // $path['dirname'] $path['basename'] $path['extenssion'] ?>
二、文件类型
1,filetype();
返回文件的类型。可能的值有 fifo,char,dir,block,link,file 和 unknown。
例子:
<?php echo filetype('/etc/passwd'); // file echo filetype('/etc/'); // dir ?>
三、得到给定文件有用信息数组(很有用)
1,fstat();
通过已打开的文件指针取得文件信息
获取由文件指针 handle 所打开文件的统计信息。本函数和 stat() 函数相似,除了它是作用于已打开的文件指针而不是文件名。
例子:
<?php // 打开文件 $fp = fopen("/etc/passwd", "r"); // 取得统计信息 $fstat = fstat($fp); // 关闭文件 fclose($fp); // 只显示关联数组部分 print_r(array_slice($fstat, 13)); ?>
2,stat()
获取由 filename 指定的文件的统计信息(类比fstat())
四、计算大小
1,filesize()
返回文件大小的字节数,如果出错返回 FALSE 并生成一条 E_WARNING 级的错误。
例子:
<?php // 输出类似:somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . ' bytes'; ?>
2,disk_free_space()
获得目录所在磁盘分区的可用空间(字节单位)
例子:
<?php // $df 包含根目录下可用的字节数 $df = disk_free_space("/"); //在 Windows 下: disk_free_space("C:"); disk_free_space("D:"); ?>
3,disk_total_space()
返回一个目录的磁盘总大小
例子:(同上,换掉函数)
另外,如需要计算一个目录大小,可以编写一个递归函数来实现,例如:
<?php function dir_size($dir){ $dir_size = 0; if($dh = @opendir($dir)){ while(($filename = readdir($dh)) != false){ if($filename !='.' and $filename !='..'){ if(is_file($dir.'/'.$filename)){ $dir_size +=filesize($dir.'/'.$filename); }else if(is_dir($dir.'/'.$filename)){ $dir_size +=dir_size($dir.'/'.$filename); } } }#end while }# end opendir @closedir($dh); return $dir_size; } #end function ?>
五、 访问与修改时间
1. fileatime(): 最后访问时间
2. filectime(): 最后改变时间(任何数据的修改)
3. filemtime(): 最后修改时间(指仅是内容修改)