一 、解析路徑
1 路徑關聯數組相關:
pathinfo();
得到一個指定路徑中的三個部分:目錄名,基本名,擴展名。
<?php
$pathinfo = pathinfo("www/test/index.html");
var_dump($pathinfo);
// $path['dirname']
$path['basename']
$path['extenssion']
2 目錄相關:
dirname();
給出一個包含有指向一個文件的全路徑的字符串,本函數返回去掉文件名後的目錄名。
<?php
$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"
3 文件名相關:
basename();
給出一個包含有指向一個文件的全路徑的字符串,本函數返回基本的文件名。如果文件名是以 suffix 結束的,那這一部分也會被去掉。
<?php
$path = "/home/httpd/html/index.php";
$file = basename($path,".php"); // $file is set to "index"
二、文件類型
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()
返回一個目錄的磁盤總大小
eg:(同上,換掉函數)
另:如需要計算一個目錄大小,可以編寫一個遞歸函數來實現
<?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(): 最後修改時間(指僅是內容修改)
後續內容請 閱讀原文 ,
更有
附送一個文件操作類,請查看原文獲取。