|
getlastmod
Gets time of last page modification
(PHP 4, PHP 5)
Example 1841. getlastmod() example<?php Code Examples / Notes » getlastmod19-may-2004 12: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); ?> kworthington no@spam linuxmaildotorg
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 timeflys
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. =====getlastmod <? //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. ======HTTP_Request <? 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
for includes.... <? //include.php $file = __FILE__; $lastmod = date("M d, Y @ h:ia", filemtime($file)); ?> <? //footer.php echo("page last modified: $lastmod"); ?> rwruck
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']) |
Change Languageassert_options assert dl extension_loaded get_cfg_var get_current_user get_defined_constants get_extension_funcs get_include_path get_included_files get_loaded_extensions get_magic_quotes_gpc get_magic_quotes_runtime get_required_files getenv getlastmod getmygid getmyinode getmypid getmyuid getopt getrusage ini_alter ini_get_all ini_get ini_restore ini_set main memory_get_peak_usage memory_get_usage php_ini_scanned_files php_logo_guid php_sapi_name php_uname phpcredits phpinfo phpversion putenv restore_include_path set_include_path set_magic_quotes_runtime set_time_limit sys_get_temp_dir version_compare zend_logo_guid zend_thread_id zend_version |