16. juli 2007 - 12:05Der er
11 kommentarer og 1 løsning
Slideshow: Hent filnavne
Hej Eksperter
Jeg har et ganske velfungerende slideshow som kan vise billeder fra en given folder. Pt. skal slideshowet blot have info om billedernes sti (../images/billede_1.jpg, ../images/billede_2.jpg, osv.), samt en caption. det gøres pt. med 2 arrays:
NewImg = new Array( "../images/Upload/Larke/112_1262.JPG", "../images/Upload/Larke/112_1260_r1.jpg", "../images/Upload/Larke/112_1257_r1.jpg" );
NewCap = new Array ( "112_1262", "112_1260_r1", "112_1257_r1" );
som defineres i slideshowets <head> section sammen med en masse anden kode som loader og viser billederne.
Jeg har nu brug for at siden selv går ind og læser hvilke billeder der ligger i en given folder og så genererer NewImg og NewCap for mig.
Går ud fra at jeg skal bruge noget php, men kan ikke rigtig komme i gang.
Du kan evt. søge i PHP-kategorien (eller endnu bedre med Google's avancerede søgning). Jeg fandt dette spm, hvor der bliver skrevet links ud til billederne i en mappe. Du skal bare skrive et JavaScript-array ud, men du kan se, hvordan man får fat i fil-stierne: http://www.eksperten.dk/spm/781763
Jeg har også noget php som kan hente stien, men jeg kan ikke rigtig få det til at virke - tænkte det var fordi jeg arbejder i <head> sectionen og ikke indenfor <body> - tagsene. Kan php virke under <head>?
Nu nærmer jeg mig jo at spørgsmålet skal ligge i en anden kategori... ;~)
PHP virker på serveren og skriver inhold ud til en virtuel tekstfil. Denne 'tekstfil' bliver sendte retur til brugerens browser. Først når 'filen' rammer browseren giver det mening at tale om tags og elementer. Indtil da er der tale om tekst. Derfor er PHP rystende ligeglad med, hvor der skrives i dokumentet.
Mon ikke, du kan bruge showsource's eksempel fra spm'et, jeg linkede til og lave det lidt om:
<?php
$dir = "upload/"; // Ret selv stien her til $aArrA = array(); $aArrB = array(); if(is_readable($dir)) { $d = dir($dir); while (false !== ($file = $d->read())) { if (is_file($dir ."/". $file)) { $aArrA[] = "\"" . $dir . $file . "\""; $a = explode(".", $file); $aArrB[] = "\"" . $a[0] . "\""; } }
$d->close(); }
?>
NewImg = new Array( <?=implode(",", $aArrA)?> ); NewCap = new Array ( <?=implode(",", $aArrB)?> );
Prøv at skrive det i et dokument - upload og kald dokumentet i en browser. Så kan du tjekke koden i View -> Source (Vis -> Kilde) ... og det skulle gerne ligne dine egne arrays (omend, de står på én linje)
Næææhhhh ... pas nu lige på! Som jeg på et tidspunkt skrev til dig, så bruger Zend_Json PHP5's funktioner, hvis disse er enabled - og ellers bruger den sine egne (som er det, vi under alle omstændigheder ønsker) ;o)
Du skal helt ned og have fat i encode-filen i json-mappen inde i lib-mappen (kan ikke huske, hvad mappen præcist hedder - og jeg har den ikke liggende på denne PC). Du må endelig ikke bruge Zend's json-funktioner as-is ... så gør de ingen forskel =)
Noget kunne dog tyde på, det er blevet rettet i sidste PHP5-build - men man skal nok lige sikre sig, det er dén, man har på serveren =)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.