Αναλύοντας τα περιεχόμενα ενός φακέλου σε 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);
}
}
?>
Δίνεται ένας φάκελος. Εμφανίστε στην οθόνη μια στήλη με τα ονόματα των υποφακέλων αυτού του φακέλου.
Δίνεται ένας φάκελος. Εμφανίστε στην οθόνη μια στήλη με τα ονόματα των αρχείων αυτού του φακέλου.
Δίνεται ένας φάκελος. Γράψτε στο τέλος κάθε αρχείου αυτού του φακέλου την τρέχουσα χρονική στιγμή.