Gå til innhold

Hente og vise tilfeldig sitat


Anbefalte innlegg

Jeg har sett på denne, og ønsker å bruke lignende fremgangsmåte for å hente frem et sitat fra en fil/mappe og vise dette. Er dette mulig? Det er det samme om sitatene lagres separat i filer i en mappe, eller alle i én fil (noe som virker mindre tungvint).

Lenke til kommentar
Videoannonse
Annonse

Det finnes flere måter å løse dette på. Litt avhengig av hvor mange sitater du har så kan det nok være fordelaktig å lagre det i separate filer. Ulepmen med en fil er at den kan bli stor, og det kan bli mye jobb for PHP å dele opp sitatene for den må skille mellom alle sammen. Selvfølgelig, det beste er å lagre det i en database, men siden du spesifiserer at det skal være en fil så antar jeg at du ikke har tilgang til dette.

 

Hvis meningen er at du bare skal kunne laste opp en ny fil med sitat, så er det beste om du åpner hovedfilen (eller en egen fil) hvor du lagrer alle filnavnene i en array. Da blir scriptet raskt.

 

En annen mulighet er å lese fra filene i en mappe og velge en tilfeldig fil. Dette er litt mer jobb, men en fult mulig løsning dersom du ikke har alt for mange hits pr. dag. Da trenger du bare å laste opp nye sitater i nye filer så finner scriptet de nye automatisk. Og du kan også slette og scriptet finner det ut selv.

 

Bruk readdir() for å lese inn filene i mappen, se i manualen og følg det eksempelet men i steden for å echo så lagre det i en array.

 

Bruk så mt_rand() for å finne et tilfeldig tall, og count() for å finne antallet filer.

 

Så bruker du bare include for å hente innholdet fra filen.

Lenke til kommentar
hva med:
<?php
srand((double)microtime()*1000000);
$rand = rand(0,10);
include "path/til/filer/".$rand.".php";
?>

Så kaller du filene for 1.php, 2.php osv

1. srand er ikke lengre nødvendig

2. bruk mt_rand og ikke rand

3. $rand = rand(0,10); her må det oppdateres når brukeren legger til eller fjerner sitater.

Lenke til kommentar

PHP 4.2 er vel tre og et halvt år eller noe, så det burde ikke akuratt være et problem. mt_rand() gir rett og slett en beddre verdi.

 

Du leser inn alle filene i en mappe med readdir(), og da kan du bare lagre disse i en array, så bruker du bare array_rand() for å velge en tilfeldig.

Lenke til kommentar

Tja... men hvorfor fjerner du ikke like godt $i?

 

$array[] = "Hei"; // $array[0] er da Hei

$array[] = "Hallo"; // $array[1] er da Hallo

 

Eventuelt så kan du jo sjekke at det ikke er mapper, men faktisk filer. Kun aktuelt dersom du har undermapper i den mappen.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...