本文整理汇总了PHP中HttpResponse::date方法的典型用法代码示例。如果您正苦于以下问题:PHP HttpResponse::date方法的具体用法?PHP HttpResponse::date怎么用?PHP HttpResponse::date使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpResponse
的用法示例。
在下文中一共展示了HttpResponse::date方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: lastModified
/**
* Attempts to cache the sent entity by its last modification date
* @param int last modified time as unix timestamp
* @param string strong entity tag validator
* @param int optional expiration time
* @return int date of the client's cache version, if available
* @throws TerminateException
*/
public function lastModified($lastModified, $etag = NULL, $expire = NULL)
{
if (!Environment::isProduction()) {
return NULL;
}
$httpResponse = $this->getHttpResponse();
$match = FALSE;
if ($lastModified > 0) {
$httpResponse->setHeader('Last-Modified', HttpResponse::date($lastModified));
}
if ($etag != NULL) {
// intentionally ==
$etag = '"' . addslashes($etag) . '"';
$httpResponse->setHeader('ETag', $etag);
}
if ($expire !== NULL) {
$httpResponse->expire($expire);
}
$ifNoneMatch = $this->getHttpRequest()->getHeader('if-none-match');
$ifModifiedSince = $this->getHttpRequest()->getHeader('if-modified-since');
if ($ifModifiedSince !== NULL) {
$ifModifiedSince = strtotime($ifModifiedSince);
}
if ($ifNoneMatch !== NULL) {
if ($ifNoneMatch === '*') {
$match = TRUE;
// match, check if-modified-since
} elseif ($etag == NULL || strpos(' ' . strtr($ifNoneMatch, ",\t", ' '), ' ' . $etag) === FALSE) {
return $ifModifiedSince;
// no match, ignore if-modified-since
} else {
$match = TRUE;
// match, check if-modified-since
}
}
if ($ifModifiedSince !== NULL) {
if ($lastModified > 0 && $lastModified <= $ifModifiedSince) {
$match = TRUE;
} else {
return $ifModifiedSince;
}
}
if ($match) {
$httpResponse->setCode(IHttpResponse::S304_NOT_MODIFIED);
$httpResponse->setHeader('Content-Length', '0');
$this->terminate();
} else {
return $ifModifiedSince;
}
return NULL;
}