Den tager nogle billeder fra en mappe og laver en liste over dem. Billederne hedder "image_yymmdd_HHMMSS.jpg" og jeg får så lavet billedernes navne om til timestamps. Nu vil jeg gerne have listet billeder i rækkefølge med det nyeste billede først - og det må være noget med at lave et array inde i array'et. Jeg vil samtidigt have mulighed for at vise et enkelt billede, hvor jeg så ved et klik på "næste" får vist det næste billede, som jo så er det billede, der er 50 sekunder ældre. Dette må også være noget med at lave et array inde i mit array. Hvis jeg kørte det sammen med en mysql-database, havde jeg ingen problemer - men lige til denne har jeg ingen db at læne mig op ad..... Nogle, der har et bud?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du kan læse alle filnavnene ind i et array, og så lave en almindelig sortering på dem. Det skal så ske hver gang du skal have fat i et eller flere billeder. Ud fra dette array kan du gøre det du ønsker.
Jeps - noget i den stil, jeg forsøgte at formulere før;-) Men jeg kører lidt fast, når jeg har ovenstående kode, da jeg der har billederne indlæst - og har fundet datoer på dem. Jeg skal bare vise dem, lidt som når man bruger "select * from tabel order by desc"...
Jeg forestiller mig, at når jeg har fået lavet listen af billeder, tildeles de et id - noget a la image[1] - og jeg så kan lave "næste billede" fra eks. image[435] som <a href="fil.php?image[435+1]">Næste</a>
Yeps. Men du kan jo starte med at få læst dem i et array, sortere det, udskrive filnavnene så du kan se det passer, og så måske få lidt inspiration af det (eller ønske dig en database i julegave)
Databaser har jeg rigeligt af;-) Billederne i mappen er billeder, der bliver uploadet via ftp fra et kamera hvert 50. sekund. Der noget windows-software med til at vise billerne med, men er ikke så udpræget begejstret for windows-grej:-)
Men du kan jo angive filnavnet på den næste i rækken, når du aflæser det aktuelle billede i det sorterede array. Og det forrige. Du behøver ingen sjove id-er.
I kameraet sidder der både en ftp-server- og client samt en httpd-server, ligesom man kan få adgang til den med telnet. Styresystemet er opbygget på et linux-system. Det er lidt små-smart.
<? if ($action==""){ echo"<b>Billeder</b><br><br> "; if ($dir = @opendir("../")) { $alle_filer = array(); // her samler vi alle filnavnene while (($file = readdir($dir))) { if ( substr( $file, 0, 6 ) == "image_" ) { $alle_filer[] = $file; } } closedir($dir); // nu ligger alle billedfilernes navne i arrayet
$alle_filer = sort( $alle_filer ); // her sorteres de i datoorden'
Det virker ikke. Den kommer med en fejl: Invalid argument supplied for foreach() - kan det passe, at der ikke er noget i arrayet? - og at den derfor ikke kan lave funktionen foreach?
Ja, så bliver de alle listet - som de også gjorde før. Jeg har nu leget en del videre med det uden at få synderligt meget ud af det. Billederne kan fint listes op, men det med kun at få listet 3 billeder i rækkefølge vil altså ikke lykkes.
Når jeg vælger et billede, skal det have en slags id, således at jeg kan finde det næste billede, der skal vises. billede.jpg [1] billede.jpg [2] billede.jpg [3] billede.jpg [4] billede.jpg [5] .....er den måde, jeg gerne vil have dem ud på - således at hvis jeg kigger på billede.jpg [2] skal næste billede være billede.jpg [3].....
Det her lister også billederne op: <? echo"<b>Billeder</b><br><br> ";if ($action==""){ if ($dir = @opendir("../kamera/")) { $alle_filer = array(); // her samler vi alle filnavnene while (($file = readdir($dir))) { if ( substr( $file, 0, 6 ) == "image_" ) { $alle_filer[] = $file; }} closedir($dir); // nu ligger alle billedfilernes navne i arrayet sort( $alle_filer ); // her sorteres de i datoorden' $filenavn = str_replace('image_', 'Billede kl. ', $file); $filenavn = str_replace('.jpg', '', $filenavn); $images = count($alle_filer); for ($i=0; $i<$images; $i++) { echo"<a href='$PHP_SELF?action=vis&image=$alle_filer[$i]'>$alle_filer[$i]</a><br>"; // her udskrives de } }} if ($action=="vis"){ echo"<br><img src='../kamera/$image'><br><br>";
Du skal starte med at vise det første i det sorterede array. Så skal der være en link til det forrige (nå nej, der er ikke noget) og det næste.
Linket til det næste er så blot <a href="dinphpfil.php?billede=**navnethentetfranæstepositioniarrayet**">NEXT</a>
Men så gælder der jo, at kun hvis $_GET['billede'] ikke er sat, så skal det første billede vises. Er $_GET['billede'] sat, skal du lede i arrayet efter positionen, vise dette billede, og linke til næste og forrige med et link som ovenfor.
(Dette er ikke personligt: jeg gider ikke skrive din kode for dig. Det lærer du intet af, næsten. Jeg vil gerne hjælp - hvis jeg kan. Til gengæld er det gratis...)
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.