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