PHP常用的文件操作函數集錦

一 、解析路徑

路徑關聯數組相關:

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"
 

文件名相關:

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(): 最後修改時間(指僅是內容修改)

    後續內容請 閱讀原文 , 更有

    附送一個文件操作類,請查看原文獲取。

發佈了32 篇原創文章 · 獲贊 6 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章