在做小專案時經常會用到讀取,寫入,刪除檔案等..動作
讀取檔案的基本用法 readfile()
<?php
echo readfile("C:\Users\abc\Desktop\鐵人賽.txt");
?>
讀取後在終端機執行會出現裡面文件的內容, 這個函式沒有辦法存到變數裡面,所以只能單純看文件內容。
想要進行檔案編輯的話要先把檔案存到變數裡面fopen()
這個函式可以把檔案開起來存到變數裡面並指定怎麼對這個檔案進行操作,有用fopen()就必須用fclose()
這個函式把它關閉
fopen()的模式表 w3schools
模式 | 說明 |
---|---|
r |
以唯讀方式開啟檔案。檔案指標從檔案開頭開始。 |
w |
以唯寫方式開啟檔案。會清空檔案內容,如果檔案不存在則建立新檔案。檔案指標從檔案開頭開始。 |
a |
以唯寫方式開啟檔案。檔案原有內容會保留,檔案指標從檔案結尾開始。如果檔案不存在則建立新檔案。 |
x |
建立一個新檔案以唯寫方式開啟。如果檔案已存在,回傳 FALSE 並報錯。 |
r+ |
以讀寫方式開啟檔案。檔案指標從檔案開頭開始。 |
w+ |
以讀寫方式開啟檔案。會清空檔案內容,如果檔案不存在則建立新檔案。檔案指標從檔案開頭開始。 |
a+ |
以讀寫方式開啟檔案。檔案原有內容會保留,檔案指標從檔案結尾開始。如果檔案不存在則建立新檔案。 |
x+ |
建立一個新檔案以讀寫方式開啟。如果檔案已存在,回傳 FALSE 並報錯。 |
執行下面的code 在開啟filename這個路徑的檔案可以發現文字被寫入了,且原本若有文字則會被覆蓋也就是從零開始
<?php
$filename = "C:\Users\abc\Desktop\新增 文字文件.txt";
$content = "Hello, PHP!\n這是第二行文字\n";
// --- 寫入檔案(覆蓋原內容) ---
$fp = fopen($filename, "w"); // "w" 覆蓋寫入
if($fp){
fwrite($fp, $content);
fclose($fp); // 寫完要關閉
echo "檔案寫入完成<br>";
} else {
echo "檔案開啟失敗<br>";
}
?>
檔案也可以直接讀取
<?php
$filename = "C:\Users\abc\Desktop\新增 文字文件.txt";
// --- 讀取檔案內容 ---
$fp = fopen($filename, "r"); // "r" 只讀
if($fp){
while(!feof($fp)){ // 從檔案頭到尾逐行讀取
$line = fgets($fp);
echo nl2br($line); // 換行顯示
}
fclose($fp); // 讀完要關閉
} else {
echo "檔案開啟失敗";
}
?>
feof($fp)
feof = file end of file
判斷檔案指標 是不是已經到檔案的結尾 (EOF)。
如果到結尾會回傳 true,否則回傳 false
!feof($fp)
! 表示「不是」。
所以意思是:只要還沒到檔案結尾,就繼續讀取
nl2br()
是 PHP 的一個內建函式,用來把文字裡的 換行符號 \n 轉換成 HTML 的 標籤
PHP 文字裡的換行(\n 或 \r\n)在瀏覽器上通常不會換行
用 nl2br() 可以讓瀏覽器顯示換行