在 php 中使用 grep 命令在特定文件中查找字符串

Posted

技术标签:

【中文标题】在 php 中使用 grep 命令在特定文件中查找字符串【英文标题】:Find String withing particular file using grep command in php 【发布时间】:2013-10-20 14:23:48 【问题描述】:

我正在上传一个 PDF 文件,我想搜索上传中包含的特定单词

php.ini 文件中仅使用 grep 命令。

提前致谢。

【问题讨论】:

PDF 是二进制格式,grep 不起作用。您必须先将 PDF 转换为文本。 @Amal,谢谢.. 但是如何将其转换为 txt 文件,然后使用 grep 命令查找单词。 你试过searching吗?这个问题之前已经回答过很多次了。尝试其中一种解决方案,如果无法正常工作,请更新此问题(或发布新问题)来描述错误/问题。 【参考方案1】:

你可以使用pdfgrep看这个链接How to search contents of multiple pdf files?我也用过几次,它也支持递归搜索。

感谢和问候, 阿洛克·撒克

【讨论】:

【参考方案2】:

正如 Amal Murali 在评论中所写,您必须将 PDF 内容转换为文本。这已经在 *** 上解决了,即How to extract text from the PDF document?。 然后你可以使用 preg_match_all,或者如果你真的想使用 grep,你可以使用 proc_open 并通过管道传递文本。

因此,使用来自http://pastebin.com/hRviHKp1 的类(来自文章的链接),这里是 preg_match_all 的示例:

include('class.pdf2text.php');
$a = new PDF2Text();
$a->setFilename('Videographer_RFP.pdf');
$a->decodePDF();
preg_match_all ('some pattern', $a->output(), $matches);
print_r($matches);

请注意,我没有测试过代码。

【讨论】:

以上是关于在 php 中使用 grep 命令在特定文件中查找字符串的主要内容,如果未能解决你的问题,请参考以下文章

在linux中查找字符串用啥命令

查找,grep和执行 - 一体化?

(31)grep命令详解:查找文件内容

linux查找并输出特定行和它的前一行且在后面再输出一个空白行的命令

[Linux 006]——grep和正则表达式

linux grep查询结果再过滤