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