Postet av: Anonym Re: $neste[0]
Kodesnutten er slik (klipper bort det uvesentlige:
$matrise = file("gjester.txt");
foreach ($matrise as $linje) {
$neste = explode("***---***", $linje);
echo "<h2>" . $neste[0] . "</h2>";
//osv, klippet noe her...
}
Det som skjer er at alle LINJER på filen gjester.txt leses inn i en matrise. Hver linje blir ett element i matrisen. Er det 10 linjer på fil, blir det 10 matriseelementer.
Matrisen heter $matrise. Med foreach-løkken gjennomgås denne, element for element. For hvert element (dvs for hver gang foreach gjennomgås) legges neste matriseelement i variabelen $linje. Det betyr at $linje overskrives for hver runde, men det gjør ikke noe siden vi behandler informasjonen FØR den overskrives i neste løkke-runde.
Se på filen i figur 8.6. Der ser du at hver linje har et fast mønster: 3 informasjonsdeler (navn, melding, link) adskilt med ***---*** mellom. Til slutt på hver linje kommer et rart tegn (observer firkant-tegnet før "Kari"). Dette er tegnet for linjeskift.
Første gang foreach kjører, jobber du med første linje fra filen (blir lagt fra matrisens første element og over i variabelen $linje). Dersom du prøver å skrive ut $linje direkte, får du følgende linje ut:
Ola Nordmann***---***Hei, du har fine hjemmesider***---***www.ola-nordmann.no***---***
Det du ønsker, er å dele opp informasjonen i mindre deler, det vil si plukke ut alt mellom ***---***
For å gjøre dette, brukes explode() funksjonen. Denne er veldig lur. Se på eksempler fra php-manualen, eller les forklaringen på andre steder i boka.
explode mottar en streng, splitter denne opp basert på oppgitte mønster, og legger resultatet i en MATRISE. Denne matrisen kaller jeg i boka for $neste.
Det er derfor jeg til slutt skriver
echo $neste[0];
Det er det samme som å skrive ut NAVNET. Dersom jeg skriver echo $neste[1]; er det MELDINGEN som kommer ut.
Siden alt er inne i en løkke, vil alle deler fra alle gjester skrives ut, i kontrollerte former. Dette eksempelet er egentlig enkelt, men kan være vanskelig å få tak på. Det fine er at når en forstår det, er en midt i hjertet av databehandling med PHP. Data fra eksterne kilder (databaser og tekstfiler) er utrolig givende å jobbe med!
Lykke til!
| |