Avatar billede e100 Nybegynder
19. august 2003 - 16:52 Der er 6 kommentarer og
1 løsning

søgefunktion uden database

Hej,

Er det muligt at lave en søgefunktion til min hjemmeside, hvor der ikke er tilkoblet en database. jeg forestiller mig at man f.eks. kunne søge efter sider med søgeord i f.eks. <META> tags på den enkelte side!?

/E100
Avatar billede detox Nybegynder
19. august 2003 - 18:33 #1
<?
$fil = 'filnavn.php';//Den fil du vil søge i. Kan evt. loope gennem hele dit site.
$str = file_get_contents($fil);
preg_match_all ("/^<META name=\"keywords\" content=\"([\w*,\s]+)/im", $str, $f);
$arr = split (",", $f[1][0]);
echo "<b>" . $fil . " indeholder:</b><br />";
foreach ($arr as $keyword) {
    echo trim($keyword) . "<br />";
}
?>
Avatar billede detox Nybegynder
19. august 2003 - 18:58 #2
Hvis du vil gennemsøge et site fx sådan:

<?
$sti = "..";
getDirList($sti);

function getDirList ($dirName) {
$d = dir($dirName);
while($entry = $d->read()) {
    if ($entry != "." && $entry != "..") {
        if (is_dir($dirName."/".$entry)) {
            getDirList($dirName."/".$entry);
        } elseif (substr($dirName."/".$entry,-4) == ".php") {
                Meta($dirName."/".$entry);
        }
    }
}
$d->close();
}//END FUNCTION

function Meta($file) {
$str = file_get_contents($file);
preg_match_all ("/^<META name=\"keywords\" content=\"([\w*,\s]+)/im", $str, $f);
if (isset ($f[1][0])) {
    $arr = split (",", $f[1][0]);
    echo "<b>" . $file . " indeholder:</b><br />";
    foreach ($arr as $keyword) {
        echo trim($keyword) . "<br />";
    }
}
}//END FUNCTION
?>
Avatar billede detox Nybegynder
19. august 2003 - 19:00 #3
I ovenstående eks. vil den gennemsøge alle filer og dirs i et niveau over, for alle php filer med META tags der indeholder keywords.
Avatar billede e100 Nybegynder
20. august 2003 - 10:22 #4
Det prøver jeg, men har desværre ikke mulighed for det pt. jeg giver en tilbagemelding hurtigst muligt med point hvis det virker.

/e100
Avatar billede detox Nybegynder
20. august 2003 - 15:06 #5
Jeg tænkte at det kunne være en fordel at kunne søge i forskellige filtyper, så jeg har lavet en lille rettelse:

<html>
<head>
<title> Find Meta Keywords </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
$mappe = "MyDir";
getDirList($mappe);

function getDirList ($dirName) {
$filtyper = ".php|.htm|.html";
$d = dir($dirName);
while($entry = $d->read()) {
    if ($entry != "." && $entry != "..") {
        if (is_dir($dirName."/".$entry)) {
            getDirList($dirName."/".$entry);
        } elseif (eregi($filtyper,$dirName."/".$entry) == true) {
                Meta($dirName."/".$entry);
        }
    }
}
$d->close();
}//END FUNCTION

function Meta($file) {
$str = file_get_contents($file);
preg_match_all ("/^<META name=\"keywords\" content=\"([\w*,\s]+)/im", $str, $f);
if (isset ($f[1][0])) {
    $arr = split (",", $f[1][0]);
    echo "<b><font color=\"#CC0000\">" . $file . ":</font></b><br />";
    foreach ($arr as $keyword) {
        echo "<font color=\"#0000CC\">" . trim($keyword) . "</font><br />";
    }
}
}//END FUNCTION
?>
</body>
</html>
Avatar billede e100 Nybegynder
01. september 2003 - 17:07 #6
Tak for hjælpen... beklager den lidt sene tilbagemelding... men ferien kaldte... Jeg har ikke haft tid til at teste det endnu, men du får point for hjælpen anyway.

Laver du et "svar" så jeg kan tildele points - tak!

/E100
Avatar billede detox Nybegynder
01. september 2003 - 17:57 #7
Ja, så håber jeg der er noget du kan bruge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester