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<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Pārbaudīsim katram nosaukumam, vai tas ir fails vai mape:
php<?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<?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<?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<?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);
}
}
?>
Задание 1
Dota mape. Izvadiet uz ekrānu šīs mapes apakšmašu nosaukumu kolonnu.
Задание 2
Dota mape. Izvadiet uz ekrānu šīs mapes failu nosaukumu kolonnu.
Задание 3
Dota mape. Katra šīs mapes faila beigās ierakstiet pašreizējo laika momentu.