使用PHP 根據單字配對取代文字檔案中的行
在行號未知的場景下,根據單字取代特定行配對可能是一項具有挑戰性的任務。幸運的是,PHP 提供了幾種有效的方法來解決這種情況:
對於較小的檔案(適合記憶體):
- 將整個檔案讀入數組lines using file('myfile').
-
建立一個函數來取代所需的行,例如Replace_a_line($data):
- 使用stristr($data, 'certain word') 檢查該行是否包含目標單字。
- 如果找到,則回傳替換行作為string.
- 否則,傳回原始line.
- 使用array_map('replace_a_line', $data)將替換函數應用於數組中的每一行。
- 使用以下命令將修改後的陣列寫回檔案file_put_contents('myfile', $data).
-
使用以下方法增強此方法用於簡化array_map 的lambda 函數:
- $data = array_map(function($data) { ... }, $data);
對於較大的檔案(記憶體強化):
- 分別使用fopen( 'myfile', 'r') 和fopen('myfile.tmp', 'w') 開啟檔案進行讀寫。
- 設定一個標誌來指示是否要替換($replaced)。
- 使用以下指令讀取輸入檔中的每一行fgets($reading).
- 使用 stristr($line, 'certain word') 檢查目標單字是否存在。
- 如果找到,則用修改後的版本取代該行。
- 使用 fputs($writing, $line) 將更新的行寫入輸出檔。
- 關閉文件處理後處理。
- 僅在進行替換時才用修改後的文件替換原始文件(rename('myfile.tmp', 'myfile')),如果不需要替換則刪除臨時文件(unlink ('myfile.tmp ')).
以上是如何在 PHP 中基於單字匹配替換文字檔案中的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!