PHP Doku:: Uhrzeit der letzten Änderung eines Scripts - function.getlastmod.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDas Verhalten von PHP beeinflussenPHP-Optionen und -InformationenPHP-Optionen-/-Informationen-Funktionengetlastmod

Ein Service von Reinhard Neidl - Webprogrammierung.

PHP-Optionen-/-Informationen-Funktionen

<<getenv

getmygid>>

getlastmod

(PHP 4, PHP 5)

getlastmodUhrzeit der letzten Änderung eines Scripts

Beschreibung

int getlastmod ( void )

Ermittelt die Uhrzeit der letzten Änderung des ausgeführten Scripts

Wenn Sie sich für das Änderungsdatum einer anderen Datei interessieren nutzen Sie statt dessen filemtime().

Rückgabewerte

Liefert die Zeit der letzten Änderung des auseführten Skripts. Der Wert wird als Unix Timestamp zurückgegebn und kann mit Hilfe der Funktion date() verarbeitet werden. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 getlastmod() Beispiel

<?php
// Liefert z.B. 'Letzte Änderung: March 04 1998 20:43:59.'
echo "Letzte Änderung: " date ("F d Y H:i:s."getlastmod());
?>

Siehe auch

  • date() - Formatiert ein(e) angegebene(s) Ortszeit/Datum
  • getmyuid() - Zeigt die User-ID des Besitzers eines PHP-Scripts
  • getmygid() - Get PHP script owner's GID
  • get_current_user() - Liefert den Benutzernamen des Besitzers des aktuellen PHP-Skripts
  • getmyinode() - Ermittelt den Inode eines Skripts
  • getmypid() - Prozess-Id eines Scripts
  • filemtime() - Liefert Datum und Uhrzeit der letzten Dateiänderung


6 BenutzerBeiträge:
- Beiträge aktualisieren...
Ant P.
24.02.2010 19:48
If you use register_shutdown_function() on certain SAPIs, various filesystem-related things inside the shutdown function might do unexpected things, one of which being this function can return false.

On the other hand getlastmod() apparently caches the return value, so if you use it at least once in normal code it should work for the remainder of the request.
rwruck
17.10.2004 15:28
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'])

19.05.2004 13: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.03.2003 22: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.11.2002 22: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
4.10.2002 0: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



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)