针在干草堆中的多个文件

时间:2014-08-11 18:06:48

标签: php

我试图在多个草堆中搜索一个针(多个文件),然后显示找到针的文件。

一些代码......

 $needle = $_POST['needle'];

foreach (glob("files/*.txt") as $file) 
{
        $file_handle = fopen($file, "r");

    while (!feof($file_handle)) 
    {
        $haystack = fgets($file_handle);
    }
    fclose($file_handle);


}

    if(stristr($haystack, $needle) === FALSE) 
    {
        echo  $needle.' not found in string';
    }
    else
    {
        echo 'found'; // --> show directories? 
    }

2 个答案:

答案 0 :(得分:0)

该行

$haystack = fgets($file_handle);

意味着$haystack将是最后一个文件的最后一行。

这是你的意思吗?

$haystack .= fgets($file_handle);

答案 1 :(得分:0)

我会做这样的事情

   $needle = $_POST['needle'];
    $is_found = FALSE;

    foreach (glob("files/*.txt") as $file) 
    {
            $file_handle = fopen($file, "r");

        while (!feof($file_handle)) 
        {
            $haystack = fgets($file_handle);
           if(stristr($haystack, $needle)){
              $is_found = TRUE;
              break;
           } 
        }
        fclose($file_handle);


    }

        if(!$is_found) 
        {
            echo  $needle.' not found in string';
        }
        else
        {
            echo 'found'; // --> show directories? 
        }