«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно проверить строку в файле с помощью PHP?

Как эффективно проверить строку в файле с помощью PHP?

Опубликовано 8 ноября 2024 г.
Просматривать:822

How to Efficiently Check for a String in a File with PHP?

Как проверить, содержит ли файл строку в 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-скрипт, обеспечивая при этом сопоставимую эффективность.

Заявление о выпуске Эта статья перепечатана по адресу: 1729665916. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3