Разбираем содержимое папки в PHP
Пусть у нас дана некоторая папка dir
,
содержащая в себе как файлы, так и папки.
Давайте получим массив имен из этой папки:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
?>
Давайте для каждого имени проверим, это файл или папка:
<?php
$files = array_diff(scandir('dir'), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file('dir/' . $file));
}
?>
Обратите внимание на то, что имя папки, которую мы сканируем, написано в двух местах кода. Это не очень удобно. Вынесем это имя в отдельную переменную:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
echo $file;
var_dump(is_file($dir. '/' . $file));
}
?>
Давайте теперь для всех файлов выведем на экран их содержимое:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
if (is_file($dir. '/' . $file)) {
echo file_get_contents($dir. '/' . $file);
}
}
?>
Можно заметить, что путь к файлу вычисляется два раза. Давайте вынесем его в отдельную переменную:
<?php
$dir = 'dir';
$files = array_diff(scandir($dir), ['..', '.']);
foreach ($files as $file) {
$path = $dir. '/' . $file; // путь к файлу
if (is_file($path)) {
echo file_get_contents($path);
}
}
?>
Дана папка. Выведите на экран столбец имен подпапок из этой папки.
Дана папка. Выведите на экран столбец имен файлов из этой папки.
Дана папка. Запишите в конец каждого файла этой папки текущий момент времени.