Förstår tyvärr ingenting av det där. Funderar på om det verkligen spelar någon roll... hm.
Kolla mapp efter bilder och lista dem
29 svar · 1 929 visningar · startad av silfver · sida 2 av 2
Frågan, av silfver
Okej, här kommer en nybörjarfråga som jag hoppas ni kan svara på snällt. :) Jag har en mapp på servern som heter uploads. I den här mappen skapas en mapp för år och månad när jag laddar upp en bild. (Kan tänka mig ändra på det här ifall det blir problem med mappnivåer.) När jag laddar upp en bild så skapas där två filer - originalfilen samt en thumbnail som innehåller 150x150 i namnet, t.ex. i-
Läs frågan i sin helhet →Ett litet exempel då:
<?php
function sortByDate($a, $b) {
$a = filectime($a);
$b = filectime($b);
if ($a < $b) return -1; // Fil $a är äldre än fil $b
if ($a == $b) return 0; // Fil $a och fil $b är lika gamla
return 1; // Fil $b är äldre än fil $a
}
$filer = glob('./uploads/*.jpg'); // Hämta alla jpg-filer i mappen uploads
usort($filer); // Sortera arrayen $filer efter filernas ålder
echo '<pre>' . print_r($filer, 1) . '</pre>'; // Skriv ut innehållet i arrayen $filer
?>
Hmm... nej. Såg att jag hade missat en sak.
usort($filer);
ska ju vara
usort($filer, 'sortByDate');
metalboy skrev:
Hmm... nej. Såg att jag hade missat en sak.
usort($filer);ska ju vara
usort($filer, 'sortByDate');
Blev faktiskt ingen skillnad med följande kod:
<?php
function sortByDate($a, $b) {
$a = filectime($a);
$b = filectime($b);
if ($a < $b) return -1; // Fil $a är äldre än fil $b
if ($a == $b) return 0; // Fil $a och fil $b är lika gamla
return 1; // Fil $b är äldre än fil $a
}
$filer = glob('/wordpress/wp-content/uploads/*.jpg'); // Hämta alla jpg-filer i mappen uploads
usort($filer, 'sortByDate'); // Sortera arrayen $filer efter filernas ålder
echo '<pre>' . print_r($filer, 1) . '</pre>'; // Skriv ut innehållet i arrayen $filer
?>
Ok. Gissar att sökvägen är fel. Finns det en mapp i diskroten som heter wordpress, eller ligger den i webbroten? PHPs filfunktioner utgår alltid ifrån diskroten om du anger / i början.
metalboy skrev:
Ok. Gissar att sökvägen är fel. Finns det en mapp i diskroten som heter wordpress, eller ligger den i webbroten? PHPs filfunktioner utgår alltid ifrån diskroten om du anger / i början.
Webbroten. Kan man ändra till ($_SERVER["DOCUMENT_ROOT"]."/wordpress/wp-content/uploads/"); på nåt sätt?
Ja. Fungerade inte det eller?
$filer = glob($_SERVER['DOCUMENT_ROOT'] . '/wordpress/wp_content/uploads/*.jpg');
metalboy skrev:
Ja. Fungerade inte det eller?
$filer = glob($_SERVER['DOCUMENT_ROOT'] . '/wordpress/wp_content/uploads/*.jpg');
Jo, när man skriver det som du gjorde. ;)
Okej, nu fick jag ut en lista:
Array
(
[0] => /Applications/MAMP/htdocs/wordpress/wp-content/uploads/i-love-hong-kong.jpg
[1] => /Applications/MAMP/htdocs/wordpress/wp-content/uploads/i-love-hong-kong-100x75.jpg
[2] => /Applications/MAMP/htdocs/wordpress/wp-content/uploads/hong-kong-by-night-100x75.jpg
[3] => /Applications/MAMP/htdocs/wordpress/wp-content/uploads/hong-kong-by-night.jpg
[4] => /Applications/MAMP/htdocs/wordpress/wp-content/uploads/backyard-baby-100x75.jpg
[...]
)
Nu listas ju bara filnamnen, dessutom alla. Vill ju bara lista miniatyrer, men det känns som en massa onödigt jobb att göra om det här. Känns dumt också att låta någon annan göra allt jobb (du metalboy). :)
Mitt exempel var mest för att visa hur du ska sortera efter datum. Du kan ju fortfarande hämta filnamnen som du har gjort förut, så får du ju ut de du vill ha. Men istället för att skriva ut filnamnet direkt, så lägger du in det i en array som du sedan sorterar.