Php 哪个更快;将文本与数组或外部文件进行比较?

Php 哪个更快;将文本与数组或外部文件进行比较?,php,javascript,html,security,file,Php,Javascript,Html,Security,File,我必须在我的网站上实现一个“坏词”过滤器,这是一个分类广告网站 我有一大堆“坏词”,但不知道哪种方法最适合比较用户输入 在我的例子中,表单中的文本区域需要检查是否有“坏词” 在test.php内部,我获取textarea,并需要比较它 我的问题是,你会把它和一个外部文本文件或者一个数组进行比较吗 我认为数组更好,所以我不需要任何外部函数等,但我需要确保 你觉得怎么样 谢谢如果你检查了很多单词,那么数组/列表总体上会更快。您只需读取文件一次,然后每次检查都将与列表相对应 但是,在您的应用程序中

我必须在我的网站上实现一个“坏词”过滤器,这是一个分类广告网站

我有一大堆“坏词”,但不知道哪种方法最适合比较用户输入

在我的例子中,表单中的文本区域需要检查是否有“坏词”


在test.php内部,我获取textarea,并需要比较它

我的问题是,你会把它和一个外部文本文件或者一个数组进行比较吗

我认为数组更好,所以我不需要任何外部函数等,但我需要确保

你觉得怎么样


谢谢

如果你检查了很多单词,那么数组/列表总体上会更快。您只需读取文件一次,然后每次检查都将与列表相对应

但是,在您的应用程序中(假设您想继续进行,尽管存在陷阱),最好只在需要时读取文件。这样,文件可以在应用程序仍在运行时更新,而不必停止并重新启动应用程序或调用某些管理函数来重新分析文件


无论如何,用户可能不会注意到提交延迟。尽管使用缓存算法查看文件是否已更改可以最大限度地减少这种情况。

与您使用的编程语言无关,我认为使用内存阵列进行比较始终是一个好的、有效的解决方案,因为这是一个坏字列表,不会变得非常庞大。

在阵列中进行比较肯定会更快,因为您没有从磁盘读取。许多用户所做的是将坏字存储在数据库或文件中,并将它们读入缓存(如memcache或APC),然后首先查看它们是否在缓存中,如果不在,则从文件中读取,然后将它们放入缓存中。这是一种灵活快速的好方法。

您已经阅读了所有关于您所做工作的警告,对吗?(例如,clbuttic/Scunthorpe问题,潜在法律后果)什么法律后果?解释这一点有点离题,但杰夫·阿特伍德写了一篇有趣的文章,讨论了淫秽过滤器的常见问题。即使你继续这个项目,读起来也很有趣:首先,我警告你——我不是律师。首先咨询专业人士。它是这样的:一旦你开始过滤输入,你就保证了网站的内容。php也有这样的powrfull数组函数,使用它们是一种犯罪。
   <form name="test" action="test.php" method="post">