Как я могу создать форму поиска, которая ищет файлы в папке? - PullRequest
0 голосов
/ 23 декабря 2011

У меня есть функция поиска на моем сайте.Я хотел бы, чтобы он просматривал определенную папку для файлов на моем сервере и отображал результаты оттуда.Я бы предпочел не использовать базы данных.

Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 23 декабря 2011
<?php
$dir = "/your_folder_here/";

// 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 == $_POST['SEARCHBOX_INPUT']){
                echo('<a href="'.$dir . $file.'">'. $file .'</a>'."\n");
            }
        }
        closedir($dh);
    }
}
?>

В основном с php.net.Очевидно, измените путь к файлу.Также измените команду $ _POST в середине на любое имя вашего поля ввода.Это будет только найти точные совпадения вашего поиска.Некоторые изменения могут быть сделаны, чтобы найти близкие совпадения.

0 голосов
/ 29 декабря 2013

Вот как я это сделал, хотя он отображает все файлы, которые находятся в этом каталоге, и не дает краткое описание каждого файла. Я не знаю, можете ли вы помочь изменить его.

<?php
print "<h2>Showing results for $search</h2>";

$dirName="MYBOOKS";
$dp=opendir($dirName);
chdir($dirName);

 while ($currentFile !== false) {

$currentFile = readDir($dp);
$theFiles[] = $currentFile;
}

$BookFiles= preg_grep("/pdf$|gif$|png$|jpg$|jed$/", $theFiles);

$output="";
foreach ($BookFiles as $currentFile) {

$output .= <<< Here
<ul>
<li><a href=MYBOOKS/$currentFile>$currentFile</a></li>
</ul>
Here;
}

 $fp=fopen("BookIndex.htm","w");
fputs ($fp,$output);
fclose($fp);

readfile ("BookIndex.htm");

?>

0 голосов
/ 23 декабря 2011
$dir = "/etc/php5/";
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        while (($file = readdir($dh)) !== false) {
            if($file == 'songs1.php')
                //ur code here ... 
        }
        closedir($dh);
    }
}

Я получил это от PHP.net .Я надеюсь, что это поможет вам.

...