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..
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.
<?}?>
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