Как проверить, содержит ли файл строку в PHP
Чтобы определить, присутствует ли в файле определенная строка, давайте рассмотрим решение и более эффективная альтернатива.
Исходный код:
Приведенный код пытается проверить наличие строки в файле, обозначенной переменной $id, читая файл построчно. Однако условие (strpos($buffer, $id) === false) в цикле while неправильно проверяет отсутствие строки, что приводит к логическому отрицанию желаемого результата.
Улучшенное решение:
Чтобы исправить ситуацию, мы можем упростить код, используя функцию file_get_contents(), которая считывает весь файл в строку. Затем функцию strpos() можно использовать для проверки наличия строки $id в этой строке:
if( strpos(file_get_contents("./uuids.txt"),$_GET['id']) !== false) {
// do stuff
}
Используя этот подход, мы избегаем последовательного обхода файла, что позволяет сэкономить время и память, особенно для больших файлов.
Альтернативный метод (для чрезвычайно Большие файлы):
Для слишком больших файлов использование файловых операций для поиска строки может вызвать проблемы с производительностью. В качестве альтернативы мы можем использовать команду grep:
if( exec('grep '.escapeshellarg($_GET['id']).' ./uuids.txt')) {
// do stuff
}
Этот подход использует системную утилиту grep для поиска строки в файле, уменьшая рабочую нагрузку на сам PHP-скрипт, обеспечивая при этом сопоставимую эффективность.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3