Разбираме съдържанието на папка в 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);
}
}
?>
Дадена е папка. Изведете на екрана колона с имената на подпапките от тази папка.
Дадена е папка. Изведете на екрана колона с имената на файловете от тази папка.
Дадена е папка. Запишете в края на всеки файл от тази папка текущия момент от времето.