Badjoker Skrevet 16. april 2008 Del Skrevet 16. april 2008 Hei, Jeg tar webprogrammering med PHP nå og sliter litt med en øving. Øvingen er som følger: Lag et PHP-script som logger IP-adressen til dine besøkende og lagrer dette på en tekstfil. Lag statistikk som viser antall treff av hver IP-adressen. IKKE bruk funksjonen file() Hint: Kombiner behandling av filer og matriser og utforsk hvilke matrisefunksjoner som er tilgjengelige i PHP, så reduseres kompleksiteten av oppgaven betydelig Jeg klarer fint å lage et script som logger IPene til en tekstfil, det jeg sliter med er å søke igjennom filen etter eksisterende IPer og hvis den finnes fra før, hvordan legger man til antallet ved siden av IPen? Jeg vil gjerne lære noe av dette så kom helst ikke med en direkte fasit, men gjerne tips og pekepinner som kan hjelpe meg i riktig retning. Kom gjerne med tips til syntax som kan brukes og små eksempler. Takk! Hilsen en PHP noob Lenke til kommentar
Jonas Skrevet 16. april 2008 Del Skrevet 16. april 2008 For å lagre flere ting i en tekstfil må den naturligvis være strukturert. Du trenger tegn for å skille data. Ofte brukes linjeskift og tab, men da har det en tendens til å bli rot med crossplatform-bruk o.l. Ved å strukturerer filen systematisk kan en enkelt separere og hente ut data. $file = '127.0.0.1|105||10.0.0.1|65'; $file = explode ( '||', $file ); foreach ( $file as $visitor ) { $visitor = explode ( '|', $visitor ); $visitors[$visitor[0]] = $visitor[1]; } print_r ( $visitors ); Da har du et array som ser følgende ut, og det gjør søking og økning i antall lettere. Array ( [127.0.0.1] => 105 [10.0.0.1] => 65 ) Lenke til kommentar
Badjoker Skrevet 16. april 2008 Forfatter Del Skrevet 16. april 2008 Ok, leser du da ut hele tekstfilen hver gang, for så å skrive all infoen tilbake til tekstfilen? Gjøres det ikke veldig mye unødvendig da? Hvis en side er besøkt av 1 mill forskjellige IPer blir jo tekstfila ufattelig stor og PHP gjør mye unødvendig? Lenke til kommentar
Jonas Skrevet 16. april 2008 Del Skrevet 16. april 2008 (endret) Det er helt korrekt, å lese hele filen er i de fleste tilfeller veldig unødvendig. I større databaser indekserer man vanligvis, slik at man ikke trenger å hente ut alt, men ettersom du ikke lagrer så mye data vil indeksen bli like stor som selve databasen, og dermed ubrukelig. Det beste ville nok uansett være å benytte seg av en allerede eksisterende database, f.eks. MySQL. Edit: Ikke MySQL i denne oppgaven, nei .. Endret 16. april 2008 av Jonas Lenke til kommentar
Badjoker Skrevet 16. april 2008 Forfatter Del Skrevet 16. april 2008 Takk for hjelpen, det var nok det lille dyttet jeg trengte for å få oppgaven i havn. Lenke til kommentar
Hayer Skrevet 18. april 2008 Del Skrevet 18. april 2008 (endret) Lagde et lite ipbann system for en stund siden, bare les gjennom de få scriptsa d består av så skjønner du d sikkert.. fil : www.pederslekeland.com/ipb.rar Endret 18. april 2008 av Hayer Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå