檢查文件或目錄是否存在windows
file_exists ()
檢查給定文件名是否爲一個存在的文件(存在、文件)函數
is_file ( string $filename )
檢查給定目錄名是否爲一個存在的目錄(存在、目錄)編碼
is_dir ( string $filename )
判斷給定的文件名或目錄名是否存在且可讀(存在、文件或目錄、可讀)code
is_readable ( string $filename )
判斷給定的文件名或目錄名是否存在且可寫(存在、文件或目錄、可寫)遞歸
is_writable ( string $filename )
解析文件名內存
basename ( string $path [, string $suffix ] ) //包含有指向一個文件的全路徑的字符串utf-8
解析目錄名rem
dirname ( string $path ) //包含有指向一個文件的全路徑的字符串字符串
解析全路徑get
pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )
新建目錄
mkdir (); //建立目錄,第三個參數表示是否遞歸建立
刪除目錄
rmdir (); //只能刪除空目錄,非空目錄必須使用遞歸刪除 function removeDirOrFile($path){ if(is_file($path)){ return unlink($path); } if(is_dir($path)){ $dir_handle = opendir($path); while(false !== ($file = readdir($dir_handle))) { if($file === '.' || $file === '..') continue; $subPath = $path.DIRECTORY_SEPARATOR.$file; $fnname = __FUNCTION__; $fnname($subPath); } closedir($dir_handle); return rmdir($path); } return FALSE; }
移動/重命名目錄
rename ( string $oldname , string $newname [, resource $context ] );
獲取目錄內容
opendir(); readdir(); closedir(); rewind(); function readDirsTree($path,$deep=0){ if(is_file($path)){ exit(basename($path)); } if(is_dir($path)){ $dir_handle = opendir($path); while(false !== ($file = readdir($dir_handle))) { if($file === '.' || $file === '..') continue; echo str_repeat(' ',$deep*2).iconv('GB2312','UTF-8',$file).'<br/>'; if(is_dir($path.DIRECTORY_SEPARATOR.$file)){ $fnname = __FUNCTION__; $fnname($path.DIRECTORY_SEPARATOR.$file, $deep+1); } } closedir($dir_handle); } }
複製目錄
function copyDir($dirFrom, $dirTo){ if(is_dir($dirFrom)){ if(!file_exists($dirTo)){ mkdir($dirTo,0777,TRUE); } $dir_handle = opendir($dirFrom); while(false !== ($file = readdir($dir_handle))) { if($file === '.' || $file === '..') continue; $fromPath = $dirFrom.DIRECTORY_SEPARATOR.$file; $toPath = $dirTo.DIRECTORY_SEPARATOR.$file; if(is_file($fromPath)){ copy($fromPath, $toPath); } if(is_dir($fromPath)){ $fnname = __FUNCTION__; $fnname($fromPath, $toPath); } } closedir($dir_handle); return TRUE; }else{ return FALSE; } }
獲取文件大小
filesize ( string $filename );
刪除文件
unlink ( string $filename);
剪切/重命名文件
rename ( string $oldname , string $newname );
拷貝文件
copy ( string $source , string $dest );
寫文件
file_put_contents ( string $filename , mixed $data [, int $flags = 0 ] );通常寫文件就直接使用這個函數,裏面其實也是依次調用fopen(),fwrite()以及 fclose() 功能。
讀文件
file_get_contents ( string $filename );此函數只適合讀一些小文件(文件大小很小的),若是讀大文件,必須使用下面方法,不然內存很容易溢出
fopen ( string $filename , string $mode );
fread ( resource $handle , int $length ); //按字節數讀取
fgets ( resource $handle [, int $length ] ); //默認長度爲1kb,按行讀取
fgetc ( resource $handle ); //按1個字節1個字節讀取
fclose ( resource $handle );
獲取文件修改時間
filemtime ( string $filename ); //返回時間戳
在windows下,獲取含有中文的目錄名或文件名時,因爲中文是GBK編碼,而項目是utf-8編碼,因此必須轉碼iconv('GBK','utf-8',$filename);
當輸入的路徑含有中文,因爲項目是utf-8,而系統文件名或目錄名都是GBK編碼,因此必須轉爲iconv('utf-8','GBK',$path);