Как мне закончить код для формы поиска, которая отображает файлы в папке? - PullRequest
0 голосов
/ 10 сентября 2018

Мне нужна форма поиска, которая ищет и отображает файлы в папке. Я нашел код ссылки php ниже (с которым я совершенно незнаком):

<?php
$dir = "/Users/rosaliaobrien/Desktop/Bio_pages/HTML_files/South";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
    while (($file = readdir($dh)) !== false) {
        if($file == $_???['_???']){
            echo('<a href="'.$dir . $file.'">'. $file .'</a>'."\n");
        }
    }
    closedir($dh);
}
}
?>

Я не уверен, что подключить для двух пробелов, помеченных '_ ???'. Вот HTML-код для строки поиска:

<form class="searchbar" action="//Desktop/fields/html\ codes/searchresults.php" style="max-width:300px">
<input type="text" placeholder="Search.." name="search2">
<button type="submit"><i class="fa fa-search"></i></button>

1 Ответ

0 голосов
/ 10 сентября 2018

Вот рабочий код, если у вас есть файлы, такие как abchome.txt, то при поиске home будет отображен файл abchome.txt, поэтому частичное сопоставление имен файлов включено.

<?php

if(!empty($_GET['submit'])){
    $search = trim($_GET['search']);
    $dir = "/Users/rosaliaobrien/Desktop/Bio_pages/HTML_files/South";
    // $dir = "/usr/games/";

    // Open a known directory, and proceed to read its contents
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {

                // here u can use regular expressions also
                if(strpos($file, $search) !== false){
                    echo('<a href="'.$dir . $file.'">'. $file .'</a>'."<br/>");
                }
            }
            closedir($dh);
        }
    }
}
?>


<form class="searchbar" action="" style="max-width:300px">
    <input type="text" placeholder="Search.." name="search">
    <button type="submit" name="submit" value="1"><i class="fa fa-search"></i>submit</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...