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..
Toplam 1 cevap
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. <?}?>