ViaThinkSoft CodeLib
This article is in:
CodeLib → Programming aids → PHP
Direkte Ausgabe:
Ausgabe in ein Array:
Verwendungsbeispiel: Zeitstempel der neuesten Datei ermitteln
Veröffentlichung: http://de.php.net/manual/de/function.filemtime.php#91665
function dir_rekursiv($verzeichnis) {
$verzeichnis .= (substr($verzeichnis, -1) == '/' ? '' : '/');
$handle = opendir($verzeichnis);
while ($datei = readdir($handle))
{
if (($datei != '.') && ($datei != '..'))
{
$file = $verzeichnis.$datei;
if (is_dir($file)) // Wenn Verzeichniseintrag ein Verzeichnis ist
{
// Erneuter Funktionsaufruf, um das aktuelle Verzeichnis auszulesen
dir_rekursiv($file.'/');
} else {
// Wenn Verzeichnis-Eintrag eine Datei ist, diese ausgeben
// TODO: Hier etwas mit der Datei tun
echo $file.'<br />';
}
}
}
closedir($handle);
}
Ausgabe in ein Array:
function getAllFiles($directory, $recursive = true) {
$result = array();
$handle = opendir($directory);
while ($datei = readdir($handle))
{
if (($datei != '.') && ($datei != '..'))
{
$file = $directory.$datei;
if (is_dir($file)) {
if ($recursive) {
$result = array_merge($result, getAllFiles($file.'/', $recursive));
}
} else {
$result[] = $file;
}
}
}
closedir($handle);
return $result;
}
Verwendungsbeispiel: Zeitstempel der neuesten Datei ermitteln
function getHighestFileTimestamp($directory, $recursive = true) {
$allFiles = getAllFiles($directory, $recursive);
$highestKnown = 0;
foreach ($allFiles as $val) {
$currentValue = filemtime($val);
if ($currentValue > $highestKnown) $highestKnown = $currentValue;
}
return $highestKnown;
}
echo 'Das Datum der neuesten Datei ist:<br>';
echo date('Y-m-d H:i:s', getHighestFileTimestamp('../'));
Veröffentlichung: http://de.php.net/manual/de/function.filemtime.php#91665
Daniel Marschall
ViaThinkSoft Co-Founder
ViaThinkSoft Co-Founder