PHP搜索有多个点击


PHP search with multiple hits

这是file1.php:

<?php
// Start the session
session_start();
?>
<?php
$path_to_check = '';
$needle = $_POST['query'];
foreach(glob($path_to_check . '*.xml') as $filename)
{
    foreach(file($filename)as $fl)
    {
    if(strpos($fl, $needle)!==false)
    {
      $_SESSION["hit"] = $filename;
    }
    }
}
header('Location: file2.php');
?>

搜索正在进行,并将搜索词所在文件的名称作为变量$_SESSION["hit"]=$filename返回;

但是,如果在多个文件中找到搜索词,它将不起作用。然后我需要转到另一个页面file1b.php(或file1b.html),在那里会列出多个文件。然后从那里选择进入file2.php.

怎么能做到呢?

使$_SESSION['hit']成为所有匹配文件名的数组。

$_SESSION['hit'] = array();
foreach(glob($path_to_check . '*.xml') as $filename)
{
    foreach(file($filename)as $fl)
    {
        if(strpos($fl, $needle)!==false)
        {
            $_SESSION["hit"][] = $filename;
            break;
        }
    }
}

然后,您可以使用一个简单的循环打印文件名。

foreach ($_SESSION['hit'] as $filename) {
    echo $filename . "<br>";
}