文件系統(tǒng)

PHP文件系統(tǒng)之讀取文件內(nèi)容

PHP具有豐富的文件操作函數(shù)轧膘,最簡單的讀取文件的函數(shù)為file_get_contents钥组,可以將整個文件全部讀取到一個字符串中萄涯。

$content = file_get_contents('./test.txt');

PHP也提供類似于C語言操作文件的方法献幔,使用fopen负甸,fgets,fread等方法慎玖,fgets可以從文件指針中讀取一行贮尖,freads可以讀取指定長度的字符串。

$fp = fopen('./text.txt', 'rb');
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關(guān)閉文件指針湿硝,以避免文件句柄被占用薪前。

PHP文件系統(tǒng)之判斷文件是否存在

一般情況下在對文件進行操作的時候需要先判斷文件是否存在,PHP中常用來判斷文件存在的函數(shù)有兩個is_file與file_exists.

<?php
$filename = 'f.txt';
if (file_exists($filename)) {
    echo file_get_contents($filename);
}
?>

如果只是判斷文件存在关斜,使用file_exists就行示括,file_exists不僅可以判斷文件是否存在,同時也可以判斷目錄是否存在蚤吹,從函數(shù)名可以看出例诀,is_file是確切的判斷給定的路徑是否是一個文件。

<?php
$filename = 'f.txt';
if (is_file($filename)) {
    echo file_get_contents($filename);
}
?>

更加精確的可以使用is_readable與is_writeable在文件是否存在的基礎(chǔ)上裁着,判斷文件是否可讀與可寫。

<?php
$filename = 'f.txt';
if (is_writeable($filename)) {//判斷可寫
    file_put_contents($filename, 'test');//改變文件內(nèi)容
}
if (is_readable($filename)) {//判斷可讀
    echo file_get_contents($filename);
}
?>

PHP文件系統(tǒng)之取得文件的修改時間

文件有很多元屬性拱她,包括:文件的所有者二驰、創(chuàng)建時間、修改時間秉沼、最后的訪問時間等桶雀。

fileowner:獲得文件的所有者
filectime:獲取文件的創(chuàng)建時間
filemtime:獲取文件的修改時間
fileatime:獲取文件的訪問時間

其中最常用的是文件的修改時間,通過文件的修改時間唬复,可以判斷文件的時效性矗积,經(jīng)常用在靜態(tài)文件或者緩存數(shù)據(jù)的更新。

<?php
$filename = 'f.txt';
$mtime = filemtime($filename);
echo '修改時間:'.date('Y-m-d H:i:s', filemtime($filename));
?>
//修改時間:2017-02-16 22:39:06
<?php
$filename = 'f.txt';
echo '所有者:'.fileowner($filename).'<br>';
echo '創(chuàng)建時間:'.date('Y-m-d H:i:s',filectime($filename)).'<br>';
echo '修改時間:'.date('Y-m-d H:i:s',filemtime($filename)).'<br>';
echo '最后訪問時間:'.date('Y-m-d H:i:s',fileatime($filename)).'<br>';
$mtime = filemtime($filename);
//給$mtime賦值為文件的修改時間

//通過計算時間差 來判斷文件內(nèi)容是否有效
if (time() - $mtime > 3600) {
    echo '<br>緩存已過期';
} else {
    echo file_get_contents($filename);
}
?>

PHP文件系統(tǒng)之取得文件的大小

通過filesize函數(shù)可以取得文件的大小敞咧,文件大小是以字節(jié)數(shù)表示的棘捣。

<?php
$filename = 'f.txt';
$size = filesize($filename);
echo $size;//獲取文件大小,文件大小是以字節(jié)數(shù)表示
?>

如果要轉(zhuǎn)換文件大小的單位休建,可以自己定義函數(shù)來實現(xiàn)乍恐。

<?php
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 = 'f.txt';
$size = filesize($filename);

$size = getsize($size, 'kb'); //進行單位轉(zhuǎn)換
echo $size.'kb';
?>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市测砂,隨后出現(xiàn)的幾起案子茵烈,更是在濱河造成了極大的恐慌,老刑警劉巖砌些,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件呜投,死亡現(xiàn)場離奇詭異,居然都是意外死亡存璃,警方通過查閱死者的電腦和手機仑荐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來有巧,“玉大人释漆,你說我怎么就攤上這事±河” “怎么了男图?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵示姿,是天一觀的道長。 經(jīng)常有香客問我逊笆,道長栈戳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任难裆,我火速辦了婚禮子檀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乃戈。我一直安慰自己褂痰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布症虑。 她就那樣靜靜地躺著缩歪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谍憔。 梳的紋絲不亂的頭發(fā)上匪蝙,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音习贫,去河邊找鬼逛球。 笑死,一個胖子當(dāng)著我的面吹牛苫昌,可吹牛的內(nèi)容都是我干的颤绕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜡歹,長吁一口氣:“原來是場噩夢啊……” “哼屋厘!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起月而,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤汗洒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后父款,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體溢谤,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年憨攒,在試婚紗的時候發(fā)現(xiàn)自己被綠了世杀。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡肝集,死狀恐怖瞻坝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情杏瞻,我是刑警寧澤所刀,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布衙荐,位于F島的核電站,受9級特大地震影響浮创,放射性物質(zhì)發(fā)生泄漏忧吟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一斩披、第九天 我趴在偏房一處隱蔽的房頂上張望溜族。 院中可真熱鬧,春花似錦垦沉、人聲如沸煌抒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摧玫。三九已至,卻和暖如春绑青,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背屋群。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工闸婴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芍躏,地道東北人邪乍。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像对竣,于是被迫代替她去往敵國和親庇楞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容