Originalmente inviato da
wood
Grazie ad entrambi,
Scusate l'ignoranza ma il codice lo scrivo in un file qualsiasi .php o deve chiamarsi ad esempio index.php?
E deve essere in ogni directory per cui voglio una risposta dal js o solo un file nel root del sito basta?
Grazie ancora a tutti!
Il codice che ho messo sopra elenca i file nella directory in cui si trova. Puoi salvarlo in un file .php con il nome che preferisci. Aprendone l'indirizzo via browser, vedrai un pezzo di JSON con l'elenco dei nomi. Se chiami il file index.php, viene usato come default quando l'indirizzo non contiene il nome della pagina.
Codice:
# se lo chiami index.php
http://sito.altervista.org/album/index.php
http://sito.altervista.org/album/
# se gli dai un nome diverso
http://sito.altervista.org/album/elenco-json.php
Se vuoi l'elenco di un paio di directory, puoi copiare il file in ciascuna di esse. Se il numero cresce, ti conviene invece usare uno script solo, e prendere la directory come parametro. La questione si complica un poco:
Codice PHP:
<?php
# chiama questa pagina il parametro "album"
# e.g., http://sito.altervista.org/elenco-foto.php?album=brugole
# la directory del sito che contiene album e foto
define('PERCORSO_FOTO', './');
$album = isset($_GET['album']) ? $_GET['album'] : '';
# stiamo per usare 'album' come nome di una directory, quindi eliminiamo
# tutti i '../' per sicurezza
$percorso_album = str_replace('../', '', $album);
# assicuriamoci che il nome non cominci o finisca con '/'
$percorso_album = trim($percorso_album, '/');
# elenchiamo i file nella directory richiesta
$immagini = glob(PERCORSO_FOTO . $percorso_album . '/*.jpg');
# mandiamo in output l'elenco delle immagini
header('Content-Type: application/json');
echo json_encode([
'album' => $percorso_album,
# con 'basename' prendiamo solo i nomi dei file, eliminando il percorso
'files' => array_map('basename', $immagini),
]);