PHP文件操作函數
一、從文件中讀取數據
1.讀取整個文件
readfile('./files/123.php'); //使用raedfile()函數讀取文件,不需要fopen/fclose,直接讀取文件到輸出緩衝,讀出失敗則返回false;
if($f_arr=file('./files/456.txt')){
foreach ($f_arr as $cont)
echo $cont."<br>";
}
/*使用file()函數讀取文件,將文件讀取到數組中,包括換行符,若讀取失敗則返回false*/
$f_char=file_get_contents('./files/456.txt');
echo $f_char;
/*使用file_get_contents('',offset,maxlen)函數讀取文件,可選擇從offset讀取到maxlen,適用於二進制對象,是將整個文件內容讀入到一個字符串中的首選方式*/
2.讀取一行數據
$fopen=fopen('./files/456.txt','r');
while(!feof($fopen)){
echo fgetss($fopen);
}
fclose($fopen);
3.讀取一個字符
$fopen=fopen('./files/456.txt','r');//若第二個選項爲rb表示以只讀形式打開一個二進制文件
$chr1=fgetc($fopen);
echo $chr1."<br>";
while(($chr=fgetc($fopen))!==false){
echo $chr;
}
fclose($fopen);
echo "<br><br>";
/*fgetc()逐個字符順序讀取文件,遇到文件末尾或EOF返回false*/
4.讀取任意長度字符串
$filename='./files/test.txt';
$fopen=fopen($filename,'r');
echo fread($fopen,300).'<br>';
fclose($fopen);
二、將數據寫入文件
//fwrite() 和 file_pit_contents()
$fopen=fopen($filename,'rw');
echo "fwrite()所寫入文件的內容";
$str="這首詩是由唐代著名的詩人李商隱所寫,包含了很多隱喻。<br>";
fwrite($fopen,$str,200);
fclose($fopen);
$out_str=file_get_contents($filename);
echo $out_str;
file_put_contents($filename,$str,FILE_APPEND);
echo "file_put_contents()所寫入文件的內容"."<br>";
$out_str=file_get_contents($filename);
echo $out_str;
/*file_put_contents(string filename,string date,flags)函數flags的選擇有“FILE_USE_INCCLUDE_PATH(檢查filename副本的內置路徑)、FILE_APPEND(設置爲在原文件後追加內容)、LOCK_EX(對文件進行上鎖)”*/
三、常用文件操作函數
/*文件操作函數
* bool copy(string path1,string path2) 複製文件,將文件有path1複製至path2
* bool rename(string name1,string name2) 重命名文件,將文件名由name1更改爲name2
* bool unlink(string filename) 刪除文件
* int fileatime(string filename) 返回文件最後一次被訪問的UNIX時間戳,可使用date('Y-m-d H:i:s',fileatime($filename))轉換爲標準時間
* int filemtime(string filename) 返回文件最後一次被修改的UNIX時間戳
* int filesize(string filename) 返回文件大小(bytes)
* string realpath(string filename) 返回文件的絕對路徑
* array pathinfo(string filename,options) 返回一個數組,表示文件路徑信息,options的可選項有PATHINFO_DIRNAME、PATHINFO_BASENAME、PATHINFO_EXTENSION,默認返回全部信息,可用foreach輸出
* array stat(string filename) 返回一個數組,包括文件的相關信息,例如文件大小、最後修改時間等
* */