Tja! Hej Jonna!Hjälp tack!
Jag har ett litet problem som någon här kanske kan hjälpa mig med!? Det är så att jag med nöd och näppe lyckats byggt ett skript som letar igenom alla rader i en text-fil efter ett visst sökord och sedan returnerar hur många rader som matchade sökningen! Det ser ut så här:
<html>
<body>
<form method="POST" action="ok.php">
<p>Sökord: <input type="text" name="sokord" size="20">
<p>Fil att söka igenom: <input type="text" name="sokfil" size="20">
<input type="submit" value="Sök!"></p>
</form>
<?
$storlek = 0;
$sidan = fopen($sokfil, "r");
while(!feof($sidan))
{
$varje_rad = fgetss($sidan, 255);
if(eregi($sokord, $varje_rad, $resultat))
{
//för varje rad där finns ett ord som matchas, öka räknaren med 1
$storlek++;
}
}
fclose($sidan);
print("Jag hittade $storlek händelser av $sokord i $sokfil<br><br>");
//Slut på sökskriptet
?>
</body>
</html>
Jag vet hur man läser av alla rader i en fil, lägger in varje rad i en vektor och sedan visar alla rader på sidan. Det ser ju ut typ så här:
$filtext = file("fil.txt");
while (list($radnr, $rad) = each ($filtext)){
echo "Rad: <b>$radnr</b> Text:<b>$rad</b><br>";
}
Men vad jag vill är att enbart de rader som matchar en sökning skall visas! T.ex. söker man på glass, och det finns flera olika rader i filen som innehåller "glass", så skall alltså bara dessa rader visas på sidan. Så på något sätt måste man integrera någon sådan funktion i mitt skript. Så min fråga är alltså om det finns någon här som kan fylla på min nuvarande kod med en sådan funktion?? Vore snällt :)!
Nu visas ju bara hur många antal rader som innehåller ett visst ord, och hur lönt är det? Raderna som matchas måste ju också visa sig på sidan! Sv: Hjälp tack!
function Search($strFile, $strText){
$f = file($strFile);
while (list($l, $sl) = each ($f)){
if(eregi($strText, $sl))
$s .= "Rad: $l Text: $sl<br>";
}
return $s;
}
echo Search("dinfil", "söksträng");
Är det inte bara så? Eller missuppfattar jag dig?
Lycka till och lev väl,
Tom S.