php笔记之-PHP文件系统
PHP文件系統之讀取文件內容
PHP具有豐富的文件操作函數,最簡單的讀取文件的函數為file_get_contents,可以將整個文件全部讀取到一個字符串中。
$content = file_get_contents('./test.txt');file_get_contents也可以通過參數控制讀取內容的開始點以及長度。
$content = file_get_contents('./test.txt', null, null, 100, 500);PHP也提供類似于C語言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以從文件指針中讀取一行,freads可以讀取指定長度的字符串。
$fp = fopen('./text.txt', 'rb');//函數打開文件或者 URL。 while(!feof($fp)) {echo fgets($fp); //讀取一行 } fclose($fp);//函數關閉一個打開文件?
$fp = fopen('./text.txt', 'rb'); $contents = ''; while(!feof($fp)) {$contents .= fread($fp, 4096); //一次讀取4096個字符 } fclose($fp);使用fopen打開的文件,最好使用fclose關閉文件指針,以避免文件句柄被占用。
PHP文件系統之判斷文件是否存在
一般情況下在對文件進行操作的時候需要先判斷文件是否存在,PHP中常用來判斷文件存在的函數有兩個is_file與file_exists.
$filename = './test.txt'; if (file_exists($filename)) {echo file_get_contents($filename); }如果只是判斷文件存在,使用file_exists就行,file_exists不僅可以判斷文件是否存在,同時也可以判斷目錄是否存在,從函數名可以看出,is_file是確切的判斷給定的路徑是否是一個文件。
$filename = './test.txt'; if (is_file($filename)) {echo file_get_contents($filename); }更加精確的可以使用is_readable與is_writeable在文件是否存在的基礎上,判斷文件是否可讀與可寫。
$filename = './test.txt'; if (is_writeable($filename)) {file_put_contents($filename, 'test'); } if (is_readable($filename)) {echo file_get_contents($filename); }PHP文件系統之取得文件的修改時間
文件有很多元屬性,包括:文件的所有者、創建時間、修改時間、最后的訪問時間等。
fileowner:獲得文件的所有者 filectime:獲取文件的創建時間 filemtime:獲取文件的修改時間 fileatime:獲取文件的訪問時間其中最常用的是文件的修改時間,通過文件的修改時間,可以判斷文件的時效性,經常用在靜態文件或者緩存數據的更新。
$mtime = filemtime($filename); echo '修改時間:'.date('Y-m-d H:i:s', filemtime($filename));PHP文件系統之取得文件的大小
通過filesize函數可以取得文件的大小,文件大小是以字節數表示的。
$filename = '/data/webroot/usercode/resource/test.txt'; $size = filesize($filename);如果要轉換文件大小的單位,可以自己定義函數來實現。
function getsize($size, $format = 'kb') {$p = 0;if ($format == 'kb') {$p = 1;} elseif ($format == 'mb') {$p = 2;} elseif ($format == 'gb') {$p = 3;}$size /= pow(1024, $p);return number_format($size, 3); }$filename = '/data/webroot/usercode/code/resource/test.txt'; $size = filesize($filename);$size = getsize($size, 'kb'); //進行單位轉換 echo $size.'kb';值得注意的是,沒法通過簡單的函數來取得目錄的大小,目錄的大小是該目錄下所有子目錄以及文件大小的總和,因此需要通過遞歸的方法來循環計算目錄的大小。
?
?
?
?
轉載于:https://www.cnblogs.com/chancy/articles/7157979.html
總結
以上是生活随笔為你收集整理的php笔记之-PHP文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 去除行块级标签之间的默认间距
- 下一篇: System Monitor ArcGI