Avatar billede bavingo Nybegynder
13. oktober 2007 - 23:28 Der er 7 kommentarer og
1 løsning

Vælge en linje i txt fil ud fra søgning.

Jeg ønsker at lave en søgefunktion der søger igennem en masse linjer i en TXT fil. Det skal være meningen at man f.eks. søger på æble, så skal den outputte den linje med ordet æble i.

Problemet er at jeg ikke ved hvordan man vælger linjen man fandt ordet i.
Avatar billede jhe-ting Nybegynder
14. oktober 2007 - 00:27 #1
Vis hvordan du finder - så er det lettere at vise hvordan du skal vælge.
Avatar billede old-faithful Praktikant
14. oktober 2007 - 03:32 #2
Jeg stillede engang et lignende spørgsmål. Dog handlede det om kommaseparerede filer (CSV) men det er jo også rene tekstfiler. Måske kan du hente inspiration her: http://www.eksperten.dk/spm/734863
Avatar billede bavingo Nybegynder
14. oktober 2007 - 12:49 #3
Egentlig havde jeg bare tænkt noget i retning af strstr.
Avatar billede terrak Nybegynder
14. oktober 2007 - 14:12 #4
Hvad hvis 'æble' findes flere steder i dokumentet?
Avatar billede terrak Nybegynder
14. oktober 2007 - 14:19 #5
Denne funktion finder alle linjer med søgeordet i og returnerer et array hvis ordet blev fundet, falsk hvis intet blev fundet:

<?php

function findlinje($filnavn,$soegeord) {

$resultater = array();

foreach (file($filnavn) as $linje => $tekst) {
if (strstr($tekst,$soegeord)) {
$resultater[] = $linje;
}
}

if (count($resultater) > 0) {
return $resultater;
} else {
return false;
}

}

?>


Her er et eksempel på brugen af funktionen:

<?php

if ($resultat = findlinje('fil.txt','æble')) {
echo 'Fandt søgeordet i linjerne:<br />';

foreach ($resultat as $tekst) {
echo $tekst.'<br />';
}

} else {
echo 'Intet resultat';
}

?>
Avatar billede terrak Nybegynder
14. oktober 2007 - 14:23 #6
Note: æææble og æblemand vil også blive taget med. Hvis ordet skal stå for sig selv kan du angive søgeordet som ' æble ' (med mellemrum før og efter). Det giver dog et problem hvis sætningen ender med æble efterfulgt af et punktum (æble.).
Skal det være mere specifikt, skal vi have fat i nogle regular expressions.
Avatar billede bavingo Nybegynder
14. oktober 2007 - 15:04 #7
Nej dette er faktisk helt perfekt. det er en database over ord så det er ikke noget problem... Mange tak :D
Avatar billede terrak Nybegynder
14. oktober 2007 - 15:22 #8
Så lidt :-) og tak for point.
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