替代在共享的Web托管计划上执行grep

时间:2017-11-02 04:12:57

标签: javascript perl grep cgi web-hosting

应用 我希望发布一个Web应用程序,它接受输入字符串,在大约5,000个纯文本文件中搜索字符串,并返回带有匹配项的文件名。每个文本文件大约4MB(未压缩)。

问题: 在PHP中,我可以使用exec(grep -l pattern dir/* )来完成工作。但是,出于成本原因,我会选择共享网络托管计划,该计划通常不允许执行程序

您能为网络环境建议grep的替代方法吗?

到目前为止我理解了以下内容:

  1. 任何grep-alternative(例如sift)的二进制程序文件都可以工作。但是,在共享服务器上执行的问题仍然存在。

  2. 考虑到大量文件及其大小,PHP函数preg_match是不合适的。

  3. 我愿意在其他语言中实现类似grep的函数(例如perl或javascript)。但是,我不确定性能是否与grep相当,以及执行问题是否仍然存在。

    我曾尝试寻找不同的网络托管服务提供商,并了解虚拟专用服务器(VPS)可能是解决方案。但是,我遇到的所有托管服务提供商的VPS计划的价格是无法承受的。

    针对此问题的任何解决方案或指导?

1 个答案:

答案 0 :(得分:0)

可能的解决方案取决于您的托管服务提供商提供的内容和预算。 你有可用的RDBMS吗?然后,您可以使用许多优惠的全文搜索。如果没有,你可以使用SQLite,它具有全文搜索支持。

如果您必须坚持使用低技术解决方案,那么右侧链接的PHP解决方案可能对您有用。

Perl有一个File::Find模块,您可以使用它。