Buonasera,
premetto che non ho conoscenze riguardo PHP.
Avrei bisogno di un codice che legga e ritorni un json di tutti i file (nel mio caso immagini con diverse estensioni) presenti in 3 cartelle: Inizio, Slideshow e Album (nota importante: la cartella Album contiene altre cartelle all'interno con le relative immagini)
Il json dovrebbe ritornare i percorsi e i nomi di tutti i files.
A seguire un paio di esempi (non per forza il json deve essere strutturato così, l'importante è che ci siano tutti i percorsi giusti di tutti i file):
Esempio strutturato ->
Codice:
{
"Inizio": [ "immagine1.jpg" ],
"Slideshow": [ "immagine2.jpg", "immagine3.png", "immagine4.jpg" ],
"Album": {
"Album1": [ "immagine5.jpg", "immagine6.png" ],
"Album2": [ "immagine7.png", "immagine8.jpg" ],
"Album3": [ "immagine9.jpg", "immagine10.jpg", "immagine11.png" ]
}
}
Esempio non strutturato ->
Codice:
{
"immagini": [
"Inizio/immagine1.png",
"Slideshow/immagine2.jpg",
"Slideshow/immagine3.jpg",
"Album/Album1/immagine4.png",
"Album/Album1/immagine5.jpg",
"Album/Album2/immagine6.png"
]
}
L'importante è che ci siano tutte le immagini con i relativi percorsi corretti.
Inoltre mi servirebbe che il codice si adatti al 100% ai file che trova, in modo che se io dovessi aggiungere o rimuovere foto o album, il codice ritorni sempre i file aggiornati (senza dover ogni volta modificare anche il codice).
Un esempio di codice (che non funziona molto...) potrebbe essere il seguente
Codice PHP:
<?php
header('Access-Control-Allow-Origin: *');
$cartelle = [ 'Inizio', 'Slideshow' ] + glob('Album/*', GLOB_ONLYDIR);
$raccoglitore = function ($elenco, $cartella) {
return $elenco + glob($cartella . '/*.{jpg,JPG}', GLOB_BRACE);
};
header('Content-Type: application/json');
echo json_encode([
'immagini' => array_reduce($cartelle, $raccoglitore, []),
]);
Questo codice, per esempio, ritorna il seguente json
Codice:
{
"immagini": [
"Inizio/ImmagineInizio.jpg",
"Slideshow/road-1072823_960_720.jpg",
"Slideshow/scotland-1761292_1920.jpg",
"Album/Portaits/portait-4744155_1920.jpg"
]
}
Il formato, anche se rozzo, va bene (anche se sarebbe meglio più strutturato ma me lo posso sistemare nel JS!), però non funziona (non prende tutti i file e non è iterativo per le sotto-cartelle)
Se è impossibile da fare in un solo file, si possono anche fare 3 file (uno per ogni macrocartella) anche se uno solo sarebbe decisamente meglio
Ringrazio tutti per l'aiuto!
Una buona serata