![]() |
Printa ut alla rader med strängen 'Johanna' [PHP]
Hej allesammans,
Jag har en en textfil med en massa olika namn, ett namn på varje rad såhär: Johanna Lindblom Sandra Grankvist Svensson Johanna Min fråga är hur jag t.ex. söker efter alla "Johanna" i denna textfil med PHP och hämtar ut alla rader som innehåller Johanna? |
Har du tillgång till en databas? Skulle isf läsa in alla namn i det och sen
blir det mycket enkelt att söka därifrån. Ändras inte textfilen ofta så lär det bli stor prestandaskillnad också än att läsa från textfilen. |
Tack för ditt snabba svar 1infiniteloop. Då har jag ett nytt problem:
PHP-kod:
Jag har testat med: PHP-kod:
Kod:
Array Tack på förhand. |
Du måste ta hänsyn till radbrytningarna också.
|
Citat:
Kod:
Array ( [0] => Alice Agnes Maja Alexandra Ella Alice Emma Alicia Elsa etc ) |
Gör en replace och byt ut alla radbrytningar till mellanslag först och sen explodera den med mellanslag kanske?
|
Skrev ihop något..
Scriptet kollar om söksträngen matchar för- och efternamn. Kod:
<?php |
Jag skulle föredra denna funktion:
http://se2.php.net/manual/en/function.file.php Alltså: $lines = file("lista.txt"); foreach ($lines as $line_num => $line) { if(strpos(strtolower($line),"johanna") !== false){ print "Namnet Johanna förekom på rad $line_num<br />"; } } |
Problemet blir då att hitta Johan men inte Johanna.
|
Citat:
Kod:
$lines = file("lista.txt"); |
Varför använda preg_match, det är bara onödigt krävande.
Om du har "förnamn efternamn" i listan: $lines = file('lista.txt'); foreach ($lines as $num => $line) { list($fname, $lname) = explode(' ', trim($line)); if (strtolower($fname) == 'johanna') { echo 'Hittade '.$fname.' på rad '.$num."\n"; } } Om du har en lista med endast namn: $lines = file('lista.txt'); foreach ($lines as $num => $line) { $names = explode(' ', trim($line)); foreach ($names as $name) { if (strtolower($name) == 'johanna') { echo 'Hittade '.$name.' på rad '.$num."\n"; } } } |
Alla tider är GMT +2. Klockan är nu 09:20. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson