Avatar billede stefmeister Nybegynder
06. oktober 2004 - 16:04 Der er 10 kommentarer og
1 løsning

Søg i html-filer

Hej

Nu har jeg en søgefunktion på min hjemmeside, hvor man kan søge efter en titel på en film, det virker helt fint etc.
Men hvis jeg nu vil udvide min søgemaskine, hvordan kan jeg så søge efter ord i en html-fil? Også html-filer på andre sider?
Avatar billede jpvj Nybegynder
06. oktober 2004 - 16:06 #1
Det letteste er, at lave en input box, der submitter til google.

Hvis brugeren ex. indtaster "test"

submitter du "test site:ditdomænde.dk" til google.
Avatar billede stefmeister Nybegynder
06. oktober 2004 - 16:12 #2
Den funktion kender jeg godt, men har jeg ikke lyst til at bruge.

Den skal bare kunne "læse" i mine egne html filer, og i nogle fra nogle andre sider. Kun de sider jeg selv tilføjer.
Avatar billede detox Nybegynder
06. oktober 2004 - 16:45 #3
Fx:

<?php
$filer = array('http://www.eksperten.dk', 'en_fil.html', 'en_anden_fil.html');
$find = 'form'; // Hvad søges der efter?
foreach ($filer as $fil) {
    $lines = file($fil);
    $i = 0;
    foreach ($lines as $line) {
        $i++;
        if (preg_match("/".$find."/", $line)) {
            echo "<b>$find</b> er fundet i $fil på linje: $i<br />";
        }
    }
}
?>
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:07 #4
eller brug file_get_contents($fil);

tilrettet ikke testet:

<?php
$filer = array('http://www.eksperten.dk', 'en_fil.html', 'en_anden_fil.html');
$find = 'form'; // Hvad søges der efter?
foreach ($filer as $fil) {
    $indhold = file_get_contents($fil);
        if (preg_match("/".$find."/", $indhold)) {
            echo "<b>$find</b> er fundet i $fil<br />";
        }
    }
}
?>
Avatar billede stefmeister Nybegynder
06. oktober 2004 - 23:09 #5
Nice... det var sådan jeg gerne ville have det.

Kan man sætte en "timer" på, så man kan se hvor lang tid det tager?

Kan man få den til at skrive lidt af teksten hvori ordet indgår?
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:15 #6
<?php
$t1=time();
$filer = array('http://www.eksperten.dk', 'en_fil.html', 'en_anden_fil.html');
$find = 'form'; // Hvad søges der efter?
foreach ($filer as $fil) {
    $indhold = file_get_contents($fil);
        if (preg_match("/".$find."/", $indhold)) {
            echo "<b>$find</b> er fundet i $fil<br />";
        }
    }
}
echo time()-$t1;

?>
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:24 #7
Kan man få den til at skrive lidt af teksten hvori ordet indgår?

joo - så skal du bruge strpos istedet for preg_match og så "spole lidt tilbage"

jeg har spolet 25 tegn tilbage og viser 50 tegn, men gad ikke lave test for om der kan trækkes 25 tegn fra, så tjek om $pos er >= 25 først

er ikke testet

<?php
$t1=time();
$filer = array('http://www.eksperten.dk', 'en_fil.html', 'en_anden_fil.html');
$find = 'form'; // Hvad søges der efter?
foreach ($filer as $fil) {
    $indhold = file_get_contents($fil);
        if ($pos=strpos($indhold, $find)) {
            echo "<b>$find</b> er fundet i $fil<br />";
            echo substr( $indhold, $pos-25, 50 )."<br>";
        }
    }
}
echo time()-$t1;

?>
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:32 #8
Kom i tanke om at det jo ikke var så svært
stadig ikke testet

<?php
$t1=time();
$filer = array('http://www.eksperten.dk', 'en_fil.html', 'en_anden_fil.html');
$find = 'form'; // Hvad søges der efter?
foreach ($filer as $fil) {
    $indhold = file_get_contents($fil);
        if ($pos=strpos($indhold, $find)) {
            echo "<b>$find</b> er fundet i $fil<br />";
            echo substr( $indhold, $pos-($pos>=25?25:$pos), 50 )."<br>";
        }
    }
}
echo time()-$t1;

?>
Avatar billede stefmeister Nybegynder
06. oktober 2004 - 23:33 #9
nice... det virker jo perfekt.
Skal jeg oprette et nyt spg. så du kan få points?
Avatar billede bojo Nybegynder
06. oktober 2004 - 23:34 #10
nej pyt
Avatar billede stefmeister Nybegynder
06. oktober 2004 - 23:45 #11
ok :D
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