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);
}
}
?>
Папка берилган. Шу папканинг ички папкалари номларини устунча кўринишида экранга чиқаринг.
Папка берилган. Шу папканинг файл номларини устунча кўринишида экранга чиқаринг.
Папка берилган. Ҳар бир файлнинг охирига жорий вақтни ёзинг.