PHP常用的文件操作函數有哪些
本文主要總結的PHP文件操作函數。當然,這只是部分,還有很多,我沒有列出來。歡飲閲讀參考!
一 、解析路徑:
1 獲得文件名:
basename();
給出一個包含有指向一個文件的全路徑的字符串,本函數返回基本的文件名。如果文件名是以 suffix 結束的,那這一部分也會被去掉。
eg:
$path = "/home/httpd/html/";
$file = basename($path,""); // $file is set to "index"
2 得到目錄部分:
dirname();
給出一個包含有指向一個文件的.全路徑的字符串,本函數返回去掉文件名後的目錄名。
eg:
$path = "/etc/passwd";
$file = dirname($path); // $file is set to "/etc"
3 得到路徑關聯數組
pathinfo();
得到一個指定路徑中的三個部分:目錄名,基本名,擴展名。
eg:
$pathinfo = pathinfo("www/test/");
var_dump($pathinfo);
// $path['dirname']
$path['basename']
$path['extenssion']
二、文件類型
1. filetype();
返回文件的類型。可能的值有 fifo,char,dir,block,link,file 和 unknown。
eg:
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // dir
三、得到給定文件有用信息數組(很有用)
1. fstat();
通過已打開的文件指針取得文件信息
獲取由文件指針 handle 所打開文件的統計信息。本函數和 stat() 函數相似,除了它是作用於已打開的文件指針而不是文件名。
eg:
// 打開文件
$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 級的錯誤。
eg:
// 輸出類似:: 1024 bytes
$filename = '';
echo $filename . ': ' . filesize($filename) . ' bytes';
2. disk_free_space()
獲得目錄所在磁盤分區的可用空間(字節單位)
eg
// $df 包含根目錄下可用的字節數
$df = disk_free_space("/");
//在 Windows 下:
disk_free_space("C:");
disk_free_space("D:");
3. disk_total_space()
返回一個目錄的磁盤總大小
另:如需要計算一個目錄大小,可以編寫一個遞歸函數來實現。
五、 訪問與修改時間
1. fileatime(): 最後訪問時間
2. filectime(): 最後改變時間(任何數據的修改)
3. filemtime(): 最後修改時間(指僅是內容修改)
六、 文件的I/O操作
1. fopen -- 打開文件或者 URL
mode 説明
'r' 只讀方式打開,將文件指針指向文件頭。
'r+' 讀寫方式打開,將文件指針指向文件頭。
'w' 寫入方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截為零。如果文件不存在則嘗試創建之。
'a' 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創建之。
'x' 創建並以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE,
'x+' 創建並以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調用失敗並返回 FALSE
eg:
$handle = fopen("/home/rasmus/", "r");
2. file -- 把整個文件讀入一個數組中(此函數是很有用的)
和 file_get_contents() 一樣,只除了 file() 將文件作為一個數組返回。數組中的每個單元都是文件中相應的一行,包括換行符在內。如果失敗 file() 返回 FALSE。
七、 對文件屬性的操作(操作系統環境不同,可能有所不一樣,這點要注意)
1文件是否可讀:
boolis_readable ( string filename )
如果由 filename 指定的文件或目錄存在並且可讀則返回 TRUE。
記住 PHP 也許只能以運行 webserver 的用户名(通常為 'nobody')來訪問文件。不計入安全模式的限制。
2 文件是否可寫
bool is_writable ( string filename )
如果文件存在並且可寫則返回 TRUE。filename 參數可以是一個允許進行是否可寫檢查的目錄名。
記住 PHP 也許只能以運行 webserver 的用户名(通常為 'nobody')來訪問文件。不計入安全模式的限制
3 檢查文件是否存在
boolfile_exists ( string filename )
如果由 filename 指定的文件或目錄存在則返回 TRUE,否則返回 FALSE
-
如何利用PHP訪問帶有密碼的Redis
導語:如何利用PHP訪問帶有密碼的Redis方法,下面小編給大家提供了代碼實現步驟,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。一、首先設置Redis密碼,以提供遠程登陸打開配置文件,找到requirepass,然後修改如下:requirepassyourpasswordyourpassword就是redis驗...
-
PHP中閉包的一些常見問題
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編為大家搜索整理的PHP中閉包的一些常見問題,希望能給大家帶來幫助!更多精彩內容請持續關注我們應屆畢業生考試...
-
PHP編程中10個最常見的錯誤
在生活中,好多人疑惑PHP語言難不難呢?那麼,小編來解答PHP編程中10個最常見的錯誤,歡迎來閲讀!錯誤1:foreach循環後留下懸掛指針在foreach循環中,如果我們需要更改迭代的元素或是為了提高效率,運用引用是一個好辦法:$arr=array(1,2,3,4);foreach($arras&$value){$val...
-
php計算兩個文件相對路徑的方法
文章主要介紹了php計算兩個文件相對路徑的方法,涉及php操作字符串的`技巧,具有一定參考借鑑價值,需要的朋友可以參考下.一、問題:寫一個php函數算出兩個文件的相對路徑。例如$a="/a/b/c/d/";$b="/a/b/12/34/",B相對於A的相對路徑是什麼?二、解決方法:?123456789101...