| 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: 15 let
|
|||
0