Mailinglisten-Archive |
Wolfgang Ortmann schrieb am Sonntag, den 23. August 1998:
> [...] Ich benutze php (noch version 2.?) [...]
> Meine Frage ist nun, was ich tun muß, damit diese Seiten von
> proxys oder auch dem browser selbst gecacht werden?
Hi Wolfgang,
mit der "Apache Module Configuration Directive"
phpLastModified on
bewirkst Du, daß PHP/FI automatisch die HTTP-Headerzeile "Last-Modified:"
mit dem Alter der phtml-Seite erzeugt, so wie's der Apache bei normalen
html-Seiten auch machen würde.
Bei PHP3 heißt die Direktive entsprechend
php3_last_modified [on|off]
Falls bei an Deinen Seiten (per include etc.) beteiligten PHP-Dateien
doch öfters Änderungen auftreten, müßtest Du selber die jüngste
Änderungsdatum finden.
Ich hab' mal sowas gemacht und dabei sogar das letzte Änderungsdatum
einer am Seiteninhalt beteiligten Datenbank mit berücksichtigt:
(Code ist noch im alten PHP/FI ...)
---- header.phpinc ---------------------------------------------------
<?
/*
* Input :
* Liste der Include-Dateien in $include_file[]
*
* Änderungsdatum der Nutzdaten in $data_lastmod_date
*
* plus optional:
* Name der Datenbank in $mysql_db
* SQL-Anfrage für Datum der letzten
* Änderung der Nutzdaten in $mysql_query
*
* Output:
* HTTP-Header "Last-Modified:"
* (plus einige Variablen :-)
*/
$timezone = Date("Z"); /* Hier ist mein Patch für Date nötig! */
if ($timezone < 0);
$timezone = gmDate("+Hi", 0-$timezone);
else;
$timezone = gmDate("-Hi", $timezone);
endif;
if ( $mysql_query != "" );
/* Hier wird die eigentliche DB-Anfrage durchgeführt.
Da klar sein sollte, was da intern abläuft, lasse
ich's hier mal wie in meinem Original stehen: */
include("mysql_query.phpinc");
if (($mysql_result > 1) && ($mysql_numrows != 0));
if ( $mysql_field["0.0"] > $data_lastmod_date );
$data_lastmod_date = $mysql_field["0.0"];
endif;
endif;
endif;
if ( $data_lastmod_date != 0 );
$data_lastmod_string = Date("D, Y-m-d H:i:s ",$data_lastmod_date)
+ $timezone;
endif;
$file_lastmod_date = fileMtime($SCRIPT_FILENAME);
$local_n = count($include_file);
if ( $local_n > 0 );
/* Schleife über alle Include-Dateien. */
$local_i = 0;
while ( $local_i < $local_n );
$local_t = fileMtime( $include_file[$local_i] );
if ( $local_t > $file_lastmod_date );
$file_lastmod_date = $local_t;
endif;
$local_i++;
endwhile;
endif;
$file_lastmod_string = Date("D, Y-m-d H:i:s ",$file_lastmod_date)
+ $timezone;
if ( $data_lastmod_date > $file_lastmod_date );
$lastmod_date = $data_lastmod_date;
else;
$lastmod_date = $file_lastmod_date;
endif;
$lastmod_string = gmDate("D, d M Y H:i:s G\MT",$lastmod_date);
?>
---- ende ------------------------------------------------------------
Ciao,
Martin
--
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://ramsch.home.pages.de/ >
PGP: 0xE8EF4F75, 52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
Früher erröteten die Mädchen, wenn sie sich schämten,
heute schämen sie sich, wenn sie erröten. -- unbekannt
php::bar PHP Wiki - Listenarchive