Inhoud van een map in PHP analyseren
Stel we hebben een bepaalde map dir,
die zowel bestanden als mappen bevat.
Laten we een array met namen uit deze map verkrijgen:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Laten we voor elke naam controleren of het een bestand of een map is:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Let op het feit dat de naam van de map die we scannen op twee plaatsen in de code staat. Dit is niet erg handig. Laten we deze naam in een aparte variabele zetten:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Laten we nu voor alle bestanden hun inhoud op het scherm weergeven:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Je kunt opmerken dat het pad naar het bestand twee keer wordt berekend. Laten we het in een aparte variabele zetten:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // pad naar bestand
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Er is een map gegeven. Geef op het scherm een kolom met namen van submapen uit deze map weer.
Er is een map gegeven. Geef op het scherm een kolom met namen van bestanden uit deze map weer.
Er is een map gegeven. Schrijf naar het einde van elk bestand in deze map het huidige tijdstip.