downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

getmygid> <getenv
[edit] Last updated: Fri, 10 Feb 2012

view this page in

getlastmod

(PHP 4, PHP 5)

getlastmodRetourne la date de dernière modification de la page

Description

int getlastmod ( void )

Retourne la date de dernière modification de la page.

Si vous voulez récupérer la date de la dernière modification d'un fichier différent, utilisez la fonction filemtime().

Valeurs de retour

Retourne la date de dernière modification de la page. La valeur retournée est un timestamp UNIX, utilisable comme paramètre avec la fonction date(). Retourne FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec getlastmod()

<?php
// affiche par exemple 'Dernière modification: April 20 2004 20:43:59.'
echo "Dernière modification : " date ("F d Y H:i:s."getlastmod());
?>

Voir aussi

  • date() - Formate une date/heure locale
  • getmyuid() - Retourne l'UID du propriétaire du script actuel
  • getmygid() - Retourne le GID du propriétaire du script
  • get_current_user() - Retourne le nom du possesseur du script courant
  • getmyinode() - Retourne l'inode du script
  • getmypid() - Retourne le numéro de processus courant de PHP
  • filemtime() - Lit la date de dernière modification du fichier



getmygid> <getenv
[edit] Last updated: Fri, 10 Feb 2012
 
add a note add a note User Contributed Notes getlastmod
erik dot stetina at gmail dot com 27-Sep-2011 03:47
function for displaying last modification time accross more direcotries. e.g. to display last modification date in "about" section of your web page

<?php
function array_prefix_values($prefix, $array)
{
 
$callback = create_function('$s','return "'.$prefix.'".$s;');
  return
array_map($callback,$array);
}

function
get_last_update()
{
  if (
func_num_args() < 1 ) return 0;
 
$dirs = func_get_args();
 
$files = array();
  foreach (
$dirs as $dir )
  {
   
$subfiles = scandir($dir);
   
$subfiles = array_prefix_values($dir,$subfiles);
   
$subfiles = array_filter($subfiles,"is_file");
   
$files = array_merge($files,$subfiles);
  }
 
$maxtimestamp = 0;
 
$maxfilename = "";
  foreach (
$files as $file )
  {
   
$timestamp = filemtime($file);
    if (
$timestamp > $maxtimestamp )
    {
     
$maxtimestamp = $timestamp;
     
$maxfilename = $file;
    }
  }
  return
date("Ymd",$maxtimestamp)." ($maxfilename)";
}

print
"last update: ".get_last_update("./lib/", "./css/", "./lang/");
?>

OUTPUT:
last update: 20110927 (./lang/sk.php)
Ant P. 24-Feb-2010 10: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-Oct-2004 06: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-May-2004 04: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 01: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 01: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 03: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

 
show source | credits | sitemap | contact | advertising | mirror sites