Мундариҷаи ҷузвдонро дар 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);
}
}
?>
Ҷузвдоне дода шудааст. Ба экран сутуни номҳои ҷузвдонҳои зерӣ аз ин ҷузвдонро чоп кунед.
Ҷузвдоне дода шудааст. Ба экран сутуни номҳои файлҳои аз ин ҷузвдонро чоп кунед.
Ҷузвдоне дода шудааст. Ба охири ҳар як файли ин ҷузвдон лаҳзаи ҷорӣ вақтро нависед.