Который быстрее;Сравнение текста с массивом или внешним файлом? - PullRequest
0 голосов
/ 13 августа 2010

Мне нужно применить фильтр "плохих слов" на моем сайте, который является сайтом объявлений.

У меня большой список "плохих слов", но я не знаю, какой метод лучше всего сравнить с пользовательскими данными.

В моем случае текстовая область внутри формы должна быть проверена на наличие "плохих слов".

   <form name="test" action="test.php" method="post">

Внутри test.php Я получаю текстовое поле, и мне нужно сравнить его ...

Мой вопрос: вы бы сравнили его с внешним текстовым файлом с плохими словами или массивом с плохими словами?

Массив, на мой взгляд, лучше, поэтому мне не нужны никакие внешние функции и т. Д., Но я должен быть уверен ...

Что вы думаете?

Спасибо

Ответы [ 3 ]

0 голосов
/ 13 августа 2010

Независимо от языка программирования, который вы используете, я думаю, использование массивов памяти для сравнения всегда было бы хорошим и эффективным решением, учитывая, что список плохих слов не будет расти по-настоящему огромный.

0 голосов
/ 13 августа 2010

Делать это в массиве определенно будет быстрее, так как вы не читаете с диска. Многие пользователи сохраняют плохие слова в базе данных или файле и читают их в кеш (например, memcache или APC), а затем проверяют, находятся ли они вначале в кеше, а если нет, читают из файла и затем поместите их в кеш. Это хороший подход, гибкий и быстрый.

0 голосов
/ 13 августа 2010

Массив / список будет быстрее, если вы проверяете много слов. Вам нужно только прочитать файл один раз, и тогда каждая проверка будет против списка.

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

Задержка при отправке, вероятно, в любом случае не будет замечена пользователем. Хотя использование алгоритма кэширования, чтобы увидеть, изменился ли файл, минимизирует это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...