(PECL pecl_http >= 0.1.0)
http_match_etag — Match ETag
$etag
[, bool $for_range
= false
] )Matches the given ETag against the clients If-Match resp. If-None-Match HTTP headers.
etag
the ETag to match
for_range
if set to TRUE
, the header usually used to validate HTTP ranges will be checked
Returns TRUE
if ETag matches or the header contained the asterisk ("*"), else FALSE
.
php dot net at eoasys dot com (2008-04-04 23:16:13)
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
root at mantoru dot de (2007-11-01 05:46:23)
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']);
}
?>