2011-12-23 2 views
-1

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

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

+1

вопрос является слишком расплывчатым, пожалуйста, вы можете разработать более? –

+0

okay one second – ssrsrssrrsrsr

ответ

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

Я обычно осуждаю это за довольно много копий другого ответа, но вы объяснили это и изменили его в соответствии с потребностями OP. +1. Однако здесь может быть полезно объяснение по очереди. – Purag

+0

Да, я написал несколько секунд после предыдущего ответа. мы оба сделали логическую вещь и набрали хороший ole 'php.net –

+0

в порядке, поэтому, чтобы быть уверенным, я просто поставил это в верхней части моего кода и заменил «your_folder_here» на мою папку и «$ _POST», с именем ввода моего окна поиска. верный? – ssrsrssrrsrsr

0
$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. Я надеюсь, это поможет вам.

+0

Я не понимаю этого ... – ssrsrssrrsrsr

+0

и у меня есть несколько файлов для поиска не только одного – ssrsrssrrsrsr

+0

Это * будет * полезно ссылаться на фактическую страницу на PHP.net. Если вы не хотите это объяснять здесь. – Purag

0

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

<?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"); 

?>

Смежные вопросы