DO NOT use this function unless you are absolutely sure both your Apache and PHP have been compiled with the same value for -DFILE_OFFSET_BITS.
If not, this function will return the access time (or maybe even garbage) instead of the modification time due do Apache and PHP using different versions of the stat structure.
This is true regardless of Apache and PHP version.
To be on the safe side, always use the workaround already posted below:
filemtime($_SERVER['SCRIPT_FILENAME'])
getlastmod
(PHP 4, PHP 5)
getlastmod — Geçerli sayfanın son değişiklik zamanını döndürür
Açıklama
int getlastmod
( void
)
Geçerli sayfanın son değişiklik zamanını döndürür.
Başka bir dosyanın değişiklik zamanıyla ilgileniyorsanız filemtime() işlevine bakın.
Dönen Değerler
Geçerli sayfanın son değişiklik zamanını date() işlevinde kullanılabilen bir Unix zaman damgası olarak döndürür. Hata oluşursa FALSE döner.
Örnekler
Örnek 1 - getlastmod() örneği
<?php
$fmt = datefmt_create("tr_TR", IntlDateFormatter::FULL,
IntlDateFormatter::FULL,'Europe/Istanbul',
IntlDateFormatter::GREGORIAN, "dd MMMM yyyy HH:mm:ss");
// Çıktısı: 'Son değişiklik: Son değişiklik: 13 Şubat 2009 14:10:09'
echo "Son değişiklik: " . datefmt_format ($fmt, getlastmod());
?>
Ayrıca Bakınız
- date() - Yerel tarihi/saati biçimlendirir
- getmyuid() - PHP betiğinin sahibinin kullanıcı kimliğini döndürür
- getmygid() - PHP betiğinin sahibinin grup kimliğini döndürür
- get_current_user() - PHP betiğinin sahibininin kullanıcı ismini döndürür
- getmyinode() - Çalışan betiğin dosya düğümü numarasını döndürür
- getmypid() - PHP'nin süreç kimliğini (PID) döndürür
- filemtime() - Dosyanın değişiklik zamanını döndürür
getlastmod
rwruck
17-Oct-2004 01:28
17-Oct-2004 01:28
19-May-2004 11:36
Setting the 'Last-Modified' header:
<?php
setlocale(LC_TIME, "C");
$ft = filemtime ('referencefile');
$localt = mktime ();
$gmtt = gmmktime ();
$ft = $ft - $gmtt + $localt;
$modified = strftime ("%a, %d %b %Y %T GMT", $ft);
?>
timeflys at users dot sourceforget dot net
20-Mar-2003 09:28
20-Mar-2003 09:28
I found issues using getlastmod() to test whether or not I was successful in setting the Last Modified date in the header. The code below shows the same Last Modified date before and after I set the Last-Modified header.
<?php
//True modified date
$modified = date ("F d Y H:i:s.", getlastmod());
//artificial modified date - sent to header
$last_modified = gmdate('D, d M Y H:i:s T', (time() - 43200));
//caching prevention
header("Last-Modified: $last_modified GMT");
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0
$getlast_modified = date ("F d Y H:i:s.", getlastmod());
print "True modified date(Before): $modified <p /> Date sent to header(After): $getlast_modified";
?>
I then used the PEAR, HTTP_Request class which worked, the Last-Modified date updates everytime it is requested, the desired effect.
<?php
require 'HTTP/Request.php';
$r = new HTTP_Request('http://www.sample.com/page.php');
$r->sendRequest();
$response_headers = $r->getResponseHeader();
print $response_headers["last-modified"];
?>
Richard Anderson(r85anderson at yahoo dot com)
17-Nov-2002 09:33
17-Nov-2002 09:33
for includes....
<?php
//include.php
$file = __FILE__;
$lastmod = date("M d, Y @ h:ia", filemtime($file));
?>
<?php
//footer.php
echo("page last modified: $lastmod");
?>
[EDIT by danbrown AT php DOT net: Remember that $lastmod must not be a variable that is set or unset anywhere else in the script, or it will not work as expected when printed from the footer.]
kworthington ([no@spam)] linuxmaildotorg
03-Oct-2002 10:33
03-Oct-2002 10:33
I was just informed of a workaround for the Apache 2.0 issue, do:
echo "Last modified: " . date("D F d Y h:i:s A", filemtime($_SERVER["SCRIPT_FILENAME"]));
Thanks to: Edward S. Marshall
