在PHP 中,讀取文件內容是開發中非常常見的操作。file() 和file_get_contents() 是兩種常用的讀取文件的函數,但它們在返回值、用途和性能上都有所不同。本文將詳細對比它們的差異,並給出選擇建議。
" ; // 1. file() 函數 echo "file() 函數會將整個文件讀入數組中,每一行作為數組的一個元素返回:
" ; echo "\n"; echo "\$lines = file('example.txt');\n" ; echo "foreach (\$lines as \$line) {\n" ; echo " echo \$line;\n" ; echo "}\n" ; echo " " ; echo "
特點:
" ; echo "file_get_contents() 會將整個文件讀入一個字符串中:
" ; echo "\n"; echo "\$content = file_get_contents('example.txt');\n" ; echo "echo \$content;\n" ; echo " " ; echo "
特點:
" ; echo "| 特性 | file() | file_get_contents() |
|---|---|---|
| 返回類型 | 數組,每行一個元素 | 字符串,整個文件內容 |
| 適用場景 | 按行處理文件內容 | 一次性獲取整個文件內容,整體處理 |
| 內存使用 | 大文件按行會佔用更多內存 | 大文件一次性讀入可能消耗更多內存 |
| 常見用途 | 逐行讀取日誌、配置文件 | 讀取模板、配置文本、API 響應 |
選擇哪個函數取決於你的需求:
" ; echo "總結來說,file() 更適合逐行處理,file_get_contents() 更適合一次性獲取整個內容。根據實際需求選擇合適的函數,可以讓你的PHP 文件操作更高效。
" ; ?> <?php // 尾部示例:與正文無關 $footerMessage = "—— PHP 學習小課堂結束——" ; echo $footerMessage ; ?>相關標籤:
file_get_contents