| FAQ |
| Kalender |
|
|
#1 | ||
|
|||
|
Medlem
|
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? Senast redigerad av addiction1 den 2010-02-28 klockan 13:40 |
||
|
|
Svara med citat
|
|
|
#2 | |||
|
||||
|
Nykomling
|
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. |
|||
|
|
Svara med citat
|
|
|
#3 | ||
|
|||
|
Medlem
|
Tack för ditt snabba svar 1infiniteloop. Då har jag ett nytt problem:
PHP-kod:
Jag har testat med: PHP-kod:
Kod:
Array
(
[0] =>
Alice
[1] => Agnes
Maja
[2] => Alexandra
Ella
[3] => Alice
Emma
[4] => Alicia
Elsa
[5] => Alma
Alva
[6] => Alva
Julia
[7] => Amanda
Linnea
[8] => Anna
Wilma
Tack på förhand. Senast redigerad av addiction1 den 2010-02-28 klockan 15:41 |
||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Supermoderator
|
Du måste ta hänsyn till radbrytningarna också.
__________________
Full-stack developer, free for smaller assignments |
||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Medlem
|
|||
|
|
Svara med citat
|
|
|
#6 | |||
|
||||
|
Klarade millennium-buggen
|
Gör en replace och byt ut alla radbrytningar till mellanslag först och sen explodera den med mellanslag kanske?
|
|||
|
|
Svara med citat
|
|
|
#7 | ||
|
|||
|
Flitig postare
|
Skrev ihop något..
Scriptet kollar om söksträngen matchar för- och efternamn. Kod:
<?php
$file = 'file.txt';
$search = 'Johanna';
/* --------------------- */
$fp = @fopen($file, 'r') or die('Filen kunde inte läsas in');
$contents = NULL;
$result = array();
if(is_resource($fp)){
while( ! feof($fp)) {
$contents .= fgets($fp);
}
$lines = explode("\n", $contents);
for($i = 0; $i < count($lines); $i++){
$person = explode(' ', $lines[$i]);
if((stripos($person[0], $search) !== FALSE) OR (stripos($person[1], $search) !== FALSE)){
echo $lines[$i] . '<br />' . PHP_EOL;
}
}
} else {
echo 'Något gick snett..';
}
|
||
|
|
Svara med citat
|
|
|
#8 | ||
|
|||
|
Medlem
|
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 />"; } } |
||
|
|
Svara med citat
|
|
|
#9 | ||
|
|||
|
Klarade millennium-buggen
|
Problemet blir då att hitta Johan men inte Johanna.
|
||
|
|
Svara med citat
|
|
|
#10 | ||
|
|||
|
Medlem
|
Citat:
Kod:
$lines = file("lista.txt");
foreach ($lines as $line_num => $line) {
if(preg_match('/^johanna$/sim', $line)){
print "Namnet Johanna förekom på rad $line_num<br />";
}
}
|
||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|