Gå til innhold

Hvordan få tilfeldige sider?


Anbefalte innlegg

Skrevet

Driver på med Russesiden vår. Der skal jeg ha en kolonne som henter fram profilen til et tilfeldig medlem.

 

Profilene er lagret som egne HTML dokumenter, av typen "profiler/navn.html".

 

Det jeg trenger nå er et script som viser en tilfeldig profil, altså hver gang siden laster.

Noen som kunne hjulpet meg med det? :)

Videoannonse
Annonse
Skrevet

Løsning i pseudokode:

 

new array profiler[] 
i=0
for each file in /profiles as profil
    profiler[i] = profil
    i++
end for
show_page_nr = round(random() * profiler->size)
show_page = profiler[show_page_nr]
output(show_page)

 

Dette er vel den enkleste løsningen. Skal legge meg nå, så jeg orker ikke skrive et skikkelig kodeeksempel. Lykke til!

Skrevet (endret)

Du har alle profilene i en egen mappe? og ingen andre filen i den mappen?

 

I så fall så er det ganske rett frem. F.eks.:

 

<?php

$mappe = "./profiler/";

 

if ($handle = opendir($mappe)) {

while (false !== ($file = readdir($handle))) {

if ($file != "." && $file != "..") {

$file_list[] = $file;

}

}

closedir($handle);

}

 

include $mappe.$file_list[mt_rand(0, (count($file_list)-1))];

?>

 

Kan kanskje ligne noe. Har ikke testet det!

 

Edit:

glemte noen [], det skjer når man skriver uten å teste ;)

Endret av ????????
Skrevet

Takker for at du gidder å hjelpe :)

 

Men siden returnerte denne feilmeldingen:

Warning: main(): Failed opening '' for inclusion (include_path='.:/usr/local/lib/php') in test/index.php on line 79 

Skrevet (endret)

Hehe... beklager - include $file_list[$mappe.mt_rand(0, (count($file_list)-1))]; skal være:

include $mappe.$file_list[mt_rand(0, (count($file_list)-1))];

 

 

Edit:

rettet scriptet over!

Endret av ????????
Skrevet

Navnet på mappen er "random".

 

Jeg kunne ikke se noe sted jeg skulle redigere, så jeg tok bare "cut and paste", blir det feil?

Skrevet (endret)

Jeg rettet en skrivefeil i scriptet også.

Endre denne delen av scriptet: $mappe = "./profiler/";

 

til f.eks.

$mappe = "./random/";

Endret av ????????
Skrevet (endret)
ville det fungert å legge alle filene inn i en array og brukt array_rand for å velge en filfeldig side på den måten...?

Absolutt et godt poeng ilpostino.

 

Bytt ut:

include $mappe.$file_list[mt_rand(0, (count($file_list)-1))];

 

Med:

include $mappe.$file_list[array_rand($file_list, 1)];

 

I denne sammenhengen vil det ha minimalt å si, men credit where credit is due, bra forslag ilpostino.

Endret av ????????

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...