Analizzare il contenuto di una cartella in PHP
Supponiamo di avere una cartella dir
che contiene sia file che cartelle.
Otteniamo un array con i nomi da questa cartella:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Controlliamo per ogni nome se è un file o una cartella:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Nota che il nome della cartella che stiamo scandendo è scritto in due punti del codice. Questo non è molto conveniente. Inseriamo questo nome in una variabile separata:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Ora per tutti i file visualizziamo il loro contenuto:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Si può notare che il percorso del file viene calcolato due volte. Inseriamolo in una variabile separata:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // percorso del file
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Data una cartella. Visualizza a schermo un elenco verticale dei nomi delle sottocartelle di questa cartella.
Data una cartella. Visualizza a schermo un elenco verticale dei nomi dei file di questa cartella.
Data una cartella. Aggiungi alla fine di ogni file di questa cartella l'istante temporale corrente.