在多个word文档文件中查找特定文本

时间:2014-04-15 09:04:14

标签: php file

我想构建一个搜索模块,用户在其中输入文本,该文本应搜索特定目录中的所有文件。我使用过这段代码:

$path_to_check = 'E:/xampp/htdocs/talent_orbit/test/';
$needle = 'test';

foreach(glob($path_to_check.'*.txt') as $filename)
{
   //print_r(file($filename));
  foreach(file($filename) as $fli=>$fl)
  {
      echo $f1;
    if(strpos($fl, $needle)!==false)
    {
      echo $filename.' on line '.($fli+1).': '.$fl;
    }
  }
}

但它仅适用于.txt文件,它应该搜索.doc文件。我还将glob($path_to_check.'*.txt') as $filename)更改为glob($path_to_check.'*.doc') as $filename),但未显示结果。请帮助我。

编辑:

我还尝试了this

的解决方案
php > exec("egrep -rl 'string of what I want to find' full-or-relative-directory", $output);
php > print_r($output);
Array
(
  [0] => full-or-relative-directory/foo/bar.xml
)
php > $contents = file_get_contents($output[0]);

它显示了Array(),我不知道在“完全或相对目录”之间放什么我的意思是路径。

我的代码: -

php > exec("egrep -rl 'rakesh' E:/xampp/htdocs/talent_orbit/test/", $output);
php > print_r($output);

如果不可能,我可以将doc文件转换为txt文件,然后搜索该txt文件吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

这是不可能的。 doc文件不是' plain text'文件。尝试在编辑器中打开它,你会看到。搜索*.txt*.xml文件将起作用,因为这些文件基本上都是纯文本文件。 doc文件中包含二进制数据。

解决方案将是PHP的文档解析器(例如this one),但它需要一个循环文件​​的脚本,使用解析器打开每个文件并搜索字符串。 / p>