Альтернатива выполнению grep при использовании общего плана веб-хостинга

Приложение. Я хочу опубликовать веб-приложение, которое принимает входные строки, ищет строку примерно в 5000 текстовых файлов и возвращает имена файлов с совпадениями. Каждый текстовый файл весит около 4 МБ (без сжатия).

Проблема. В PHP я мог бы использовать exec(grep -l pattern dir/* ) и выполнить работу. Однако из соображений стоимости я бы выбрал общий план веб-хостинга, который обычно не позволяет запускать программы.

Не могли бы вы предложить альтернативу grep для веб-среды?

Я понял следующее до сих пор:

  1. Двоичный программный файл для любой альтернативы grep (например, sift) может работать. Однако проблема выполнения на общем сервере останется.

  2. PHP-функция preg_match неуместна, учитывая большое количество файлов и их размер.

Я открыт для реализации grep-подобной функции на других языках (например, perl или javascript). Однако я не уверен, что производительность будет сравнима с grep и останется ли проблема с выполнением.

Я пробовал искать разных провайдеров веб-хостинга и понял, что решением может быть виртуальный частный сервер (VPS). Однако цена VPS-плана у всех хостинг-провайдеров, с которыми я сталкивался, недоступна.

Любые решения или рекомендации для этой проблемы?


person Rahim Rajwani    schedule 02.11.2017    source источник
comment
Я бы посмотрел на Bluehost - их планы общего хостинга позволяют вам использовать grep.   -  person Derek Brown    schedule 02.11.2017
comment
Возможный дубликат Поиск строк во всех файлах в папке   -  person Derek Brown    schedule 02.11.2017
comment
Большое спасибо! На данный момент пойти на Bluehost было проще всего.   -  person Rahim Rajwani    schedule 03.11.2017


Ответы (1)


Возможные решения зависят от того, что предлагает ваш хостинг-провайдер и вашего бюджета. Будет ли у вас доступна РСУБД? Затем вы можете использовать полнотекстовый поиск, который предлагает множество вариантов. Если нет, вы можете использовать SQLite, который поддерживает полнотекстовый поиск.

Если вам приходится придерживаться низкотехнологичных решений, вам может подойти решение PHP, указанное справа.

В Perl есть файл : :Найдите модуль, который вы могли бы использовать.

person jira    schedule 02.11.2017
comment
Спасибо за помощь. На данный момент я выбрал Bluehost, и они позволяют использовать функцию grep. - person Rahim Rajwani; 03.11.2017