lefsaker Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 Bruker denne koden nå: <?php $mappe = "images"; $hoyde = "75"; $bredde = "75"; $dir = opendir($mappe); $unntak = array(".", ".."); while($print_bilde = readdir($dir)): if ($print_bilde == $unntak[0] || $print_bilde == $unntak[1]): continue; Endif; $print_bilde = $mappe."/".$print_bilde; echo "\n<a href=\"$print_bilde\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; Endwhile; closedir($dir); ?> Den krymper bildene til 75x75 og linker til orginalen. Men den viser alle bildene i den mappen som er bestemt. Hvordan får jeg endret den så den bare viser 5 forskjellige bilder hver gang man refresher siden? Lenke til kommentar
Peter Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 PHP <?php $i = 0; while($print_bilde = readdir($dir) && $i++ < 5 ) .... ?> Eller noe sånt. Lenke til kommentar
lefsaker Skrevet 22. oktober 2006 Forfatter Del Skrevet 22. oktober 2006 Det funka ikke oO Lenke til kommentar
PHPdude Skrevet 22. oktober 2006 Del Skrevet 22. oktober 2006 (endret) Bruker denne koden nå: <?php $mappe = "images"; $hoyde = "75"; $bredde = "75"; $dir = opendir($mappe); $unntak = array(".", ".."); while($print_bilde = readdir($dir)): if ($print_bilde == $unntak[0] || $print_bilde == $unntak[1]): continue; Endif; $print_bilde = $mappe."/".$print_bilde; echo "\n<a href=\"$print_bilde\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; Endwhile; closedir($dir); ?> Den krymper bildene til 75x75 og linker til orginalen. Men den viser alle bildene i den mappen som er bestemt. Hvordan får jeg endret den så den bare viser 5 forskjellige bilder hver gang man refresher siden? 7128788[/snapback] Prøv <?php $mappe = "images"; $hoyde = "75"; $bredde = "75"; $antall_bilder = 5; $dir = new dir($mappe); $nr = 0; while((false !== ($entry = $d->read())) && (++$nr <= ($antall_bilder + 2))) if (($entry == '.') || $entry = '..') continue; $print_bilde = $mappe."/".$print_bilde; echo "\n<a href=\"$print_bilde\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; Endwhile; $dir->close(); ?> Endret 22. oktober 2006 av PHPdude Lenke til kommentar
lefsaker Skrevet 22. oktober 2006 Forfatter Del Skrevet 22. oktober 2006 Får bare feilmeldingen: Parse error: parse error, unexpected T_ENDWHILE in C:\wamp\www\shyroth\imagehost\index.php on line 119 Og hvis jeg tar vekk Endwhile; så får jeg denne feilmeldingen: Fatal error: Class 'dir' not found in C:\wamp\www\shyroth\imagehost\index.php on line 110 Lenke til kommentar
MC2 Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 (endret) PHP <?php // hvis du ikke kjører php5 if(function_exists("scandir") == false) { function scandir($dir, $sortorder = 0) { if(is_dir($dir)) { $dirlist = opendir($dir); while(($file = readdir($dirlist)) !== false) { $files[] = $file; } if($sortorder == 0) { asort($files); } else { rsort($files); }; closedir($dir); return $files; } else { return FALSE; break; }; }; }; $mappe = "mappe/"; $hoyde = ""; $bredde = ""; // hent filene fra mappa $bilder = scandir($mappe); // fjerner "." og ".." unset($bilder[0],$bilder[1]); // tilfeldige bilder shuffle($bilder); // begrense til fem $bilder = array_chunk($bilder,5); $bilder = $bilder[0]; // skriv ut bildene function skrivuhtml($bilde) { global $mappe,$hoyde,$bredde; $print_bilde = $mappe.$bilde; echo "\n<a href=\"$print_bilde\"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; }; array_walk($bilder,"skrivuthtml"); ?> det er en stygg renderings feil mot slutten... bytt ut \ med \ Endret 23. oktober 2006 av MC2 Lenke til kommentar
lefsaker Skrevet 23. oktober 2006 Forfatter Del Skrevet 23. oktober 2006 Får bare: Parse error: parse error, unexpected ';' in C:\wamp\www\shyroth\imagehost\index.php on line 111 " $files[] = $file;" er 111 Lenke til kommentar
Peter Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 (endret) Har du null peiling på PHP? Dersom du har null peiling, kan du heller betale noen for å gjøre jobben for deg istedenfor. EDIT: Redigert bort en feil påpekt i posten under. Endret 23. oktober 2006 av Nazgul Lenke til kommentar
lefsaker Skrevet 23. oktober 2006 Forfatter Del Skrevet 23. oktober 2006 det er ikke annførselstegn der... de la jeg bare til for å vise at DET sto der Lenke til kommentar
lefsaker Skrevet 23. oktober 2006 Forfatter Del Skrevet 23. oktober 2006 Hvordan får jeg til kun 1 random bilde da? Uten link og uten å måtte legge den til manuelt i fila? Lenke til kommentar
Joakim Gjerde Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 Har du null peiling på PHP?Dersom du har null peiling, kan du heller betale noen for å gjøre jobben for deg istedenfor. EDIT: Redigert bort en feil påpekt i posten under. 7132617[/snapback] Er faktisk noe som heter at man må LÆRE da! Og mange er vil faktisk bidra til at andre lærer det. Og hvis man står fast er det derfor veldig greit å spørre her, da det alltid er noen som har en løsning Lenke til kommentar
Peter Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 Man lærer ikke av at andre gjør hele oppgaven for deg. Om du er interessert i å diskutere dette send meg en pm, så vi slipper å spamme ned tråden. Og dersom han faktisk er ute etter å lære, burde han prøve å se på noen starttutorials for i det hele tatt å forstå PHP-syntax. PHP er ikke et vanskelig språk, og det har en omfattende manual. Selvsagt skal han få lov til å spørre om ting, men han må i det minste prøve selv (og det ser det ikke ut som han gjør etter min mening. Han prøver skriptet, og dersom det ikke funker flyr han inn her istedenfor å prøve å rette feilen) Uansett, feilene i scriptet til MC2 er pga. forumet, ikke pga. MC2. Forumet gjør om en del spesialtegn til html-koder, f.eks. blir "!" gjort om til !, som er grunnen til ovenfornevnte feil. Dersom det er andre lignende feil (slik som MC2 har påpekt at det er), så må disse også rettes. Lenke til kommentar
Martin A. Skrevet 23. oktober 2006 Del Skrevet 23. oktober 2006 <?php // hvis du ikke kjører php5 if(function_exists("scandir") == false) { function scandir($dir, $sortorder = 0) { if(is_dir($dir)) { $dirlist = opendir($dir); while(($file = readdir($dirlist)) !== false) { //her hadde vi en feil $files[] = $file; } if($sortorder == 0) { asort($files); } else { rsort($files); }; closedir($dir); return $files; } else { return FALSE; break; }; }; }; $mappe = "mappe/"; $hoyde = ""; $bredde = ""; // hent filene fra mappa $bilder = scandir($mappe); // fjerner "." og ".." unset($bilder[0],$bilder[1]); // tilfeldige bilder shuffle($bilder); // begrense til fem $bilder = array_chunk($bilder,5); $bilder = $bilder[0]; // skriv ut bildene function skrivuhtml($bilde) { global $mappe,$hoyde,$bredde; $print_bilde = $mappe.$bilde; echo "\n<a href=\"$print_bilde\;"><img src=\"$print_bilde\" height=\"$hoyde\" widht=\"$bredde\" border=\"0\" alt=\"$print_bilde\"></a>\n"; }; array_walk($bilder,"skrivuthtml"); ?> Koden skulle vel nå være uten feil. Er helt enig med Nazgul. Virker ikke som at lefsaker gjør et eneste forsøk på å rette feilen. Noen legger ut en kode, han setter det inn en virkårlig plass, og sier at det ikke virker. Uten å si noe om hvordan han satt det inn. (Viser da til innlegg #2. while()-forslaget). Lenke til kommentar
lefsaker Skrevet 23. oktober 2006 Forfatter Del Skrevet 23. oktober 2006 Jeg styra litt med linja; while(($file = readdir($dirlist)) !== false) { //her hadde vi en feil men jeg fikk det ikke til å funke, men den du posta funka 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å