Analyserar innehållet i en mapp i PHP
Låt oss säga att vi har en given mapp dir,
som innehåller både filer och mappar.
Låt oss få en array med namn från denna mapp:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Låt oss för varje namn kontrollera om det är en fil eller en mapp:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Observera att namnet på mappen som vi skannrar är skrivet på två ställen i koden. Detta är inte särskilt bekvämt. Låt oss flytta ut det till en separat variabel:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Låt oss nu för alla filer skriva ut deras innehåll till skärmen:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Man kan notera att sökvägen till filen beräknas två gånger. Låt oss flytta ut den till en separat variabel:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // sökväg till filen
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
En mapp är given. Skriv ut en kolumn med namn på undermappar från denna mapp.
En mapp är given. Skriv ut en kolumn med namn på filer från denna mapp.
En mapp är given. Skriv till slutet av varje fil i denna mapp det aktuella ögonblicket i tid.