PHP mapes satura analīze
Pieņemsim, ka mums ir dota kāda mape dir,
kas satur gan failus, gan mapes.
Iegūsim šīs mapes nosaukumu masīvu:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Pārbaudīsim katram nosaukumam, vai tas ir fails vai mape:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Ievērojiet, ka mapes nosaukums, kuru mēs skenējam, ir rakstīts divās koda vietās. Tas nav īpaši ērti. Izņemsim šo nosaukumu atsevišķā mainīgajā:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Tagad visiem failiem izvadīsim uz ekrānu to saturu:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Var pamanīt, ka ceļš uz failu tiek aprēķināts divas reizes. Izņemsim to atsevišķā mainīgajā:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // ceļš uz failu
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Dota mape. Izvadiet uz ekrānu šīs mapes apakšmašu nosaukumu kolonnu.
Dota mape. Izvadiet uz ekrānu šīs mapes failu nosaukumu kolonnu.
Dota mape. Katra šīs mapes faila beigās ierakstiet pašreizējo laika momentu.