Пусть у вас есть строка, содержащая путь
к файлу или папке. С помощью специальных
функций is_file
и is_dir
мы
можем отличить, ссылается путь на файл или
на папку.
Они работают следующим образом:
<?php
$path = 'некий путь';
var_dump(is_file($path)); // true для файла, false для папки
var_dump(is_dir($path)); // true для папки, false для файла
?>
Пусть дан путь. Если путь ведет к папке выведите сообщение об этом.
Пусть дан путь. Если путь ведет к файлу выведите сообщение об этом.
Разбираем содержимое папки
Пусть у нас дана некоторая папка 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);
}
}
?>
Дана папка. Выведите на экран столбец имен подпапок из этой папки.
Дана папка. Выведите на экран столбец имен файлов из этой папки.
Дана папка. Запишите в конец каждого файла этой папки текущий момент времени.