Php 大海捞针多文件

Php 大海捞针多文件,php,Php,我试图在多个草堆(多个文件)中搜索一根针,然后显示在哪些文件中找到了针 一些代码 $needle = $_POST['needle']; foreach (glob("files/*.txt") as $file) { $file_handle = fopen($file, "r"); while (!feof($file_handle)) { $haystack = fgets($file_handle); } fclo

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

一些代码

 $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? 
    }
线路

$haystack = fgets($file_handle);
这意味着,
$haystack
将是最后一个文件的最后一行

这就是你的意思吗

不是


我会这样做的

   $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? 
        }

可以你有问题吗?
   $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? 
        }