Hallo
Weet iemand een goeie searchfuntie voor een website ?
Dus een script dat alle bestanden in een dir uitleest voor de woorden die zijn ingetypt :P
Ik heb al gezoch op hotscripts maar daar is er niks deftig
:(
Bij voorbaat bdank
Op die manier doe je het meestal niet. Je zet de inhoud van je website in een database en daar zoek je in.
Overigens kan Google ook één website doorzoeken als dat nodig is. Hij loopt dan wel een paar weken achter, wat lastig is als de site wekelijks geupdate wordt.
?
Onbekende gebruiker
03-03-2006 21:44
precies, je kunt wel een zoekfunctie maken die alle bestanden gaat openen en doorzoeken, maar dat wordt heel traag en gaat volgens mij heel veel banbreedte kosten
als je nergens op je site in de metatags noindex en/of nofollow hebt staan op de pagina's die wel geindexeerd moeten worden kun je google gebruiken ;-)
Dus ik zou all de content in een database moeten opzetten, en ook in de database editen ?
Is er een gemakkelijke manier om dit te doen ?
En hoe zou het dan met het zoekn zitten ?
Bij voorbaat dank :)
?
Onbekende gebruiker
03-03-2006 22:01
gewoon pagina.php?id=x, en dan x als id van de pagina in de database
wel ff is_numeric() halen over die $_GET id input tegen mysql_injection:P
Hier een voorbeeld voor een opzet.
Hij komt van een eerder toppic :)
<?php
// Nog een voorbeeld
// Je zou het scriptje ook zodanig kunnen uitbreiden dat je in elk veld iets zou kunnen
// invullen waarop hij dan gaat zoeken.
// Zoiets:
$sql = "SELECT *
FROM test
WHERE voornaam LIKE '%$voornaam%'
AND achternaam LIKE '%$achternaam%'
AND straat LIKE '%$straat%'";
$res = mysql_query ($sql) or die (mysql_error ());
}
// De rest van de velden kun je hier aan toevoegen.
?>
Wat ook kan, is een FULLTEXT search gebruiken. Die kan ook nog sorteren op relevantie, zodat de pagina met de meeste treffers als eerste genoemd wordt.
zonder db kan ook; dan moet je readdir oid gebruiken in een recursieve loop vanaf je homepage. zoiets als:
function search($dir) {
$file = readdir()
if is_file($file) { check if zoektekst erin voorkomt (inlezen als string en dan strstr oid) } elseif is_dir($file) { search($file) }
}
vergeet niet de '.' en '..' af te vangen, anders kom je in een oneindige recursieve loop.
Deze methode kost geen bandbreedte, omdat alles server side wordt bekeken en alleen de resultaten worden verzonden naar de gebruiker.
(maar in een db is wel beter :) )