PHP-文件操作
- 2020 年 3 月 26 日
- 筆記
1.2 文件操作
**1、**將字元串寫入文件
<?php $str="床前明月光,rn疑是地上霜。rn舉頭望明月,rn低頭思故鄉。"; file_put_contents('./test.txt',$str); //將字元串寫到文本中
小結:
1、 所有的「寫」操作都是清空重寫
2、在文本中換行是rn
r:回車 游標移動到當前行的最前面 n:換行 將游標下移動一行 按鍵盤的回車鍵做了兩步,第一步將游標移動到當前行的最前面,第二步下移一行。
3、rn是特殊字元,必須放在雙引號內
**2、**將整個文件讀入一個字元串
//方法一: echo file_get_contents('./test.txt'); //將整個文件讀入一個字元串 //方法二: readfile('./test.txt'); //讀取輸出文件內容 //注意:echo file_get_contents()==readfile()
**3、**打開文件並操作
fopen(地址,模式) 打開文件 模式: r:讀 read w:寫 write a:追加 append
例題:
//3.1、打開文件寫入 /* $fp=fopen('./test.txt','w'); //打開文件返迴文件指針(文件地址) //var_dump($fp); //resource(3) of type (stream) for($i=1;$i<=10;$i++) fputs($fp,'關關雎鳩'."rn"); //寫一行 fclose($fp); //關閉文件 */ //3.2 打開文件讀取 /* $fp=fopen('./test.txt','r'); //打開文件讀取 while($line=fgets($fp)){ echo $line,'<br>'; } */ //3.3 打開文件追加 $fp=fopen('./test.txt','a'); //打開文件追加 fputs($fp,'在河之洲'); //在文件末尾追加
小結:
1、打開文件,返迴文件指針(文件指針就是文件地址),資源類型
2、打開文件寫、追加操作,如果文件不存在,就創建新的文件
3、打開文件讀操作,文件不存在就報錯
4、fputs()寫一行,fgets()讀一行,fclose()關閉文件
5、追加是在文件的末尾追加
**4、**是否是文件【is_file()】
echo is_file('./test.txt')?'是文件':'不是文件';
**5、**判斷文件或文件夾是否存在【file_exists()】
echo file_exists('./test.txt')?'文件存在':'文件不存在';
**6、**刪除文件【unlink】
$path='./test.txt'; if(file_exists($path)){ //文件存在 if(is_dir($path)) //如果是文件夾用rmdir()刪除 rmdir($path); elseif(is_file($Path)) //如果是文件用unlink()刪除 unlink($path); }else{ echo '文件夾或文件不存在'; }
**7、**二進位讀取【fread(文件指針,文件大小)】
文件的存儲有兩種:字元流和二進位流
二進位流的讀取按文件大小來讀的。
$path='./face.jpg'; $fp=fopen($path,'r'); header('content-type:image/jpeg'); //告知瀏覽器下面的程式碼通過jpg圖片方式解析 echo fread($fp,filesize($path)); //二進位讀取
多學一招:file_get_contents()也可以進行二進位讀取
header('content-type:image/jpeg'); echo file_get_contents('./face.jpg');
小結:
1、文本流有明確的結束符,二進位流沒有明確的結束符,通過文件大小判斷文件是否讀取完畢
2、file_get_contents()既可以進行字元流讀取,也可以進行二進位讀取。