如何在PHP 中檢查文件是否包含字串
要確定文件中是否存在特定字串,讓我們探索一下解決方案和更有效的替代方案。
原始程式碼:
提供的程式碼嘗試檢查透過逐行讀取檔案來判斷檔案中是否存在由變數 $id 表示的字串。但是,while 迴圈中的條件 (strpos($buffer, $id) === false) 錯誤地檢查了字串是否存在,導致所需結果的邏輯否定。
改進的解決方案:
要修正這種情況,我們可以使用file_get_contents() 函數來簡化程式碼,該函數將整個檔案讀取為字串。然後,可以使用strpos() 函數檢查該字串中是否存在$id 字串:
if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) {
// do stuff
}
透過使用這種方法,我們可以避免逐行迭代文件,這可以節省時間和內存,特別是對於大文件。
替代方法(對於 Extremely大文件):
對於過大的文件,依賴文件操作來搜尋字串可能會帶來效能挑戰。作為替代方案,我們可以使用 grep 指令:
if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) {
// do stuff
}
這種方法使用系統的 grep 實用程式來尋找檔案中的字串,減少了 PHP 腳本本身的工作量,同時提供了相當的效率。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3