PHP – Klasör içerisinde arama yapmak

PHP Script
Daha önce şu yazımızda php ile klasör içerisinde belirli bir uzantıya sahip dosyaları listelemeyi göstermiştik. Şimdi yine benzer bir uygulamayla klasör içerisindeki dosyalar arasında nasıl arama yapılabileceğini göreceğiz

HTML sayfa başlangıcı:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<title>Egonomik.com :: PHP - Klasör içinde arama yapmak</title>
<style type="text/css">
body {
    font-family: Arial;
    font-size: 12px; }

.title {
    background:#4A4A4A;
    padding: 4px;
    font-size: 13px;
    color: #FFFFFF; }

.satir1 {
    background: #F2F2F2;
    padding: 4px;
    font-family: Arial;
    font-size: 11px; }

.satir2 {
    background: #F8F8F8;
    padding: 4px;
    font-family: Arial;
    font-size: 11px; }
</style>  
</head>
<body>

Php kodu (search.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php

$dizin = "./data/klasor"; //verilerin bulunduğu klasör
$search_key = $_GET['q'];

echo '<div class="title">'; if($search_key != "") { echo '"<b><i>'.$search_key.'</i></b>" ile ilgili sonuçlar:'; } else { echo 'Tüm dosyalar:'; } echo '</div>';

if ($handle = opendir("$dizin") or die ("Dizin acilamadi!")) {

    while (false !== ($file = readdir($handle))) {
   
    //Arama terimi ve dosya adı karşılaştırması
    $search_word = preg_match("/$search_key/i", "$file");

     if(is_file($dizin."/".$file) && $search_word) { //eğer bir dosya ise ve arama terimini içeriyorsa

    $filename = str_replace("/$search_key/i","<i><b>$search_key</b></i>",$file);

        $class = ($css % 2) ? "satir1" : "satir2"; // her satira farklı class

        echo '
        <div class="'
.$class.'"><a href="'.$dizin.'/'.$file.'">'.$filename.'</a> </div>';

        $css++;
       }

    } //while end

    closedir($handle);
}


// Arama formu
echo '<form method="get" action="search.php">
    <input type="text" name="q" size="10">
    <input type="submit" value="Ara">
    </form>'
;

?>

Safya sonu:

1
2
</body>
</html>

Facebook Yorumları

3 Yorum

  1. umut

    teşekkürler.. bi sorum olacak bi türlü yapamadım

    $dizin = “./data/klasor”; //verilerin bulunduğu klasör

    şeklibnde değilde içerisindeki altklasörlerde dahil olmak üzere nasıl yapabiliriz.

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir