Regarding the 20071101 note of "root at mantoru dot de":
That solution got me started but didn't quite work for me. Apache (at least 2.x) applies an algorithm to the Last-Modified time. A solution that worked perfectly for me is at http://us3.php.net/manual/en/function.fileinode.php#78264.
Richard
http_match_etag
(PECL pecl_http:0.1.0-1.5.5)
http_match_etag — Cherche un ETag particulier
Description
bool http_match_etag
( string $etag
[, bool $for_range = FALSE
] )
Cherche l'ETag fourni dans l'en-tête HTTP If-Match ou If-None-Match du client.
Liste de paramètres
- etag
-
l'ETag à chercher
- for_range
-
si défini à TRUE, l'en-tête habituellement utilisé pour valider l'intervalle HTTP sera analysé
Valeurs de retour
Retourne TRUE si l'ETag correspond ou l'en-tête contient une astérisque ("*"), FALSE sinon.
Voir aussi
- http_match_last_modified()
- http_match_request_header()
- http_cache_etag()
- http_cache_last_modified()
- ob_etaghandler()
http_match_etag
php dot net at eoasys dot com
05-Apr-2008 12:16
05-Apr-2008 12:16
root at mantoru dot de
01-Nov-2007 06:46
01-Nov-2007 06:46
An Apache-like ETag can be generated like this:
<?php
function etag($filename, $quote = true) {
if (!file_exists($filename) || !($info = stat($filename))) {
return false;
}
$q = ($quote) ? '"' : '';
return sprintf("$q%x-%x-%x$q", $info['ino'], $info['size'], $info['mtime']);
}
?>
