2013-06-29 13 views
6

Quindi sto cercando di ottenere l'ultima data di modifica del file e di aggiornarla all'ora corrente, ma quando guardo il risultato I ottenere lo stesso timestamp sia in $ oldtime e $ NEWTIMEmodifica dell'ora dell'ultima modifica del file tramite touch() e ottenimento del risultato con filemtime()

$file = 'test.txt'; 
$oldtime = filemtime($file); 
touch($file, time()); 
$newtime = filemtime($file); 

echo '<h1>old</h1>'; 
print_r(getdate($oldtime)); 
echo '<h1>new</h1>'; 
print_r(getdate($newtime)); 
+0

forse non si dispone di diritti sufficienti, controllare il valore restituito di tocco. – luk2302

+0

Stai eseguendo linux sul server? touch() funziona solo in Windows come da documentazione. –

+0

@KAbhishek quale documentazione? 'touch()' non funzionava sotto windows fino a php 5.3.0, e funziona sempre sotto altri OS –

risposta

13

Usa clearstatcache dopo touch di file ing per ottenere il corretto valore del tempo di modifica.

Poiché è stato utilizzato prima filemtime, il risultato è stato memorizzato nella cache e in seconda chiamata, il risultato viene estratto da quella cache anziché controllare direttamente il file.

Problemi correlati