首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 唯讀開啟檔案:fopen() 'r' 模式完整用法與資源管理

     編輯:PHP 相關知識

前言

fopen($file, 'r') 以唯讀模式開啟檔案,返回檔案資源控制代碼。本文涵蓋模式對照、讀取方法、資源釋放、錯誤處理與現代 SplFileObject 替代方案。

fopen 模式速查表

基本讀取流程

<?php
$file = '/tmp/data.txt';
$handle = fopen($file, 'r');

if ($handle === false) {
    die("無法開啟檔案: $file");
}

echo "資源型別: " . gettype($handle) . "\n"; // resource

// 逐行讀取
while (($line = fgets($handle)) !== false) {
    echo $line;
}

// 或一次讀取全部
// $content = stream_get_contents($handle);
// $content = file_get_contents($file); // 更簡潔

fclose($handle); // 必須關閉釋放資源
?>

常見讀取函數比較

模式說明指標位置建立檔案
r唯讀開頭否
r+讀寫開頭否
w唯寫(截斷)開頭是
w+讀寫(截斷)開頭是
a唯寫(附加)結尾是
a+讀寫(附加)結尾是
x唯寫(獨佔建立)開頭僅不存在時
c唯寫(不截斷)開頭是

現代替代:SplFileObject

<?php
$file = new SplFileObject('/tmp/data.txt', 'r');
$file->setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);

foreach ($file as $lineNum => $line) {
    echo "Line $lineNum: $line\n";
}
// 自動關閉,無需 fclose
?>

總結

fopen($file, 'r') 是檔案讀取基礎,掌握模式差異、逐行讀取與 fclose() 資源釋放。現代專案推薦 SplFileObject 物件導向風格,自動管理資源生命週期。希望本文對您的 PHP 程式設計有所幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數行為適用場景
fgets($handle)讀取一行(含換行符)逐行處理大檔案
fgetcsv($handle)解析 CSV 行CSV 匯入
fread($handle, $length)讀取指定位元組二進位檔案、固定長度
stream_get_contents($handle)讀取剩餘所有中小檔案一次讀完
file_get_contents($file)開啟→讀取→關閉一氣呵成簡單讀取,不需資源控制