Autor | Zpráva | ||
---|---|---|---|
Public Profil |
#1 · Zasláno: 17. 11. 2011, 21:26:17
Dá sa nejakým spôsobom zistiť, aký je dátum poslednej zmeny serveru ?
Napr. Zmením súbor: site/inc/index.php v dátume 17.11.2011 o 21:24. Tak posledná zmena by bol dátum súboru index.php -- Samozrejme myslím to tak, že zobrazí sa akýkolvek PHP dátum súboru, ktorý bol zmenený v nejakom dátume. |
||
etexweb Profil |
#2 · Zasláno: 17. 11. 2011, 21:30:20
<?php 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.'/')); } } else { $result[] = $file; } } } closedir($handle); return $result; } 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; } // Use example echo 'The newest file has the time stamp:<br>'; echo date('Y-m-d H:i:s', getHighestFileTimestamp('../')); ?> |
||
Majkl578 Profil |
#3 · Zasláno: 18. 11. 2011, 02:46:17
[#2] etexweb:
Probůh proč takovou obludnost? A ještě rekurzí a skladováním všech souborů? Nezdá se ti toto jako snazší řešení? $where = '/usr/local/netbeans'; $latest = NULL; foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($where, \FilesystemIterator::CURRENT_AS_FILEINFO | \ FilesystemIterator::SKIP_DOTS)) as $file) { if ($latest === NULL || $latest->getMTime() < $file->getMTime()) $latest = $file; } var_dump($latest->getPathname()); // název posledního souboru, $latest je instancí SplFileInfo |
||
Alphard Profil |
#4 · Zasláno: 18. 11. 2011, 05:33:31 · Upravil/a: Alphard
Tak celkově nejjednodušší bude asi Datum poslední aktualizace includovaných souborů.
Tak rekurzivně to zřejmě nefunguje. |
||
Majkl578 Profil |
#5 · Zasláno: 18. 11. 2011, 11:55:33
[#4] Alphard:
To si nemyslím, na unixu se datum změny nepromítá do rodiče rekurzivně. |
||
Adrifinel Profil |
#6 · Zasláno: 18. 11. 2011, 17:44:48
Nedávno jsme dělali na to kód:
<? $filename = $_SERVER["SCRIPT_FILENAME"]; $zakazane = array("/index.php"; // tahle část se týký, pokud bys to nechtěl na některé stránce ukazovat. foreach($zakazane as $co){ if(strpos($filename, $co)) { $povoleno = "ne"; } } if (file_exists($filename) AND $povoleno == "ano") { echo "Poslední změna provedena " . date ("d.m.Y H:i:s", filemtime($filename)); } /* else {echo $filename." neexistuje.";} */ ?> |
||
Časová prodleva: 12 let
|
0