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