Veri tabanı olmadan php kodu ile site içi arama

0

merhaba yapmış olduğum bir siteye site içi arama kodu entegre ediceğim fakat veri tabanı yok buna uygun bir php kodu paylaşabilirmisiniz ? hiç biyerde bulamadım yardımcı olursanız sevinirim..

laboustasarim laboustasarim (693)
6 yıl önce sordu

    Toplam 1 Cevap


    1

    Aşağıda veritabansız bir sitede nasıl arama yapılır örnek var. Bir klasörün içerisindeki tüm text tabanlı dosyalar aranıyor. Notepad ile düzenledim hatalar olabilir. Fakat size bir fikir verir.

     

    arama.php
    
    <?
    function get_param($name, $type="post", $default = "")
    {
    $returnee = "";
    
    if(isset($_POST[$name]) && (($type == "post") || ($type == "both")))
    $returnee = $_POST[$name];
    else if(isset($_GET[$name]) && (($type == "get") || ($type == "both")) )
    $returnee = $_GET[$name];
    else
    $returnee = $default;
    
    if (1 == get_magic_quotes_gpc())
    $returnee = stripslashes($returnee);
    
    return trim($returnee);
    }
    
    function get_dir($name){
    
    $temp = array();
    $cnt = 0;
    if($dh = opendir($name)) {
    while(($file = readdir($dh)) !== false){
    
    if($cnt >= 2)
    array_push($temp, $file);
    
    $cnt++;
    }
    $cnt = 0;
    closedir($dh);
    }
    
    return $temp;
    }
    
    function arama($text_arama, $dir="arama_docs/"){
    
    $text_arama = explode(" ", $text_arama);
    
    $files = get_dir($dir);
    
    $buffer = array();
    foreach($files as $i => $v)
    if(is_file($dir.$v))
    array_push($buffer, array($dir.$v, file_get_contents($dir.$v)));
    
    $found = array();
    foreach($buffer as $i => $v)
    foreach($text_arama as $ti => $tv)
    if(strpos($v[1], $tv) !== false && !in_array($v[0], $found))
    array_push($found, $v[0]);
    
    return $found;
    }
    
    $index = array();
    $index["arama_docs/iletisim.txt"] = array("iletisim.php", "iletisim sayfası");
    $index["arama_docs/urunler.txt"] = array("urunler.php", "urunler sayfası");
    $index["arama_docs/hakkimizda.txt"] = array("hakkimizda.php", "hakkımızda sayfası");
    
    
    $user_input = get_param("arama", "get");
    
    if($user_input != "" && $user_input != "Type arama text here")
    $found = arama($user_input);
    ?>
    
    
    HTML TARAF
    
    <?
    if($user_input != "" && $user_input != "aranacak kelime"){
    ?>
    
    <span style="font-size:18px;">arama sonucları: <span style="color:#01a4a6;">"<?=$user_input;?>"</span></span><br/><br/>
    <?
    if(count($found) == 0)
    {?>
    Sonuc bulunamadı
    <?}
    else{
    foreach($found as $i => $v)
    echo "<a href='".$index[$v][0]."'>".$index[$v][1]."</a><br/>";
    }
    }
    else{?>
    arama kutusuna deger girin.
    <?}?>

     

    cemphp cemphp (651)
    6 yıl önce cevaplandı

      üyelik gerektirir

      Cevap yazabilmek için üye girişi yapmalısınız.

      Eğer uzmanim.net üyesiyseniz giriş yapabilirsiniz: üye girişi yap
      uzmanim.net'e üye olmak çok kolaydır: hemen kayıt ol