我必须在我的网站上实施一个“坏词”过滤器,这是一个分类广告网站。
我有一个很大的“坏词”列表,但不知道哪种方法最适合用户输入。
在我的情况下,表单中的textarea需要检查“坏词”。
<form name="test" action="test.php" method="post">
在test.php中我获取textarea,需要比较它......
我的问题是,你会将它与带有坏词的外部文本文件或带有坏词的数组进行比较吗?
我认为阵列更好,所以我不需要任何外部功能等,但我需要确定......
您怎么看?
由于
答案 0 :(得分:0)
如果要检查多个单词,数组/列表总体上会更快。您只需要读取一次文件,然后每次检查都将在列表中。
但是,在您的应用程序中(假设您想要继续进行,尽管存在陷阱),最好只在需要时读取文件。这样,文件可以在应用程序仍在运行时更新,您不必停止并重新启动应用程序或调用某些管理功能来重新分析文件。
用户可能不会注意到提交延迟。虽然使用缓存算法来查看文件是否已更改,但最小化了这一点。
答案 1 :(得分:0)
与您正在使用的编程语言无关,我认为在内存数组中进行比较将始终是一个好的和有效的解决方案,因为它是一个坏词列表并且不会真的变大。
答案 2 :(得分:0)
在数组中执行它肯定会更快,因为您没有从磁盘读取。许多用户所做的是将坏词存储在数据库或文件中并将它们读入缓存(例如memcache或APC),然后查看它们是否首先位于缓存中,如果不是,则从文件中读取然后将它们放入缓存中。这是一种灵活而快速的好方法。