本文整理汇总了PHP中HttpResponse::setResponseCode方法的典型用法代码示例。如果您正苦于以下问题:PHP HttpResponse::setResponseCode方法的具体用法?PHP HttpResponse::setResponseCode怎么用?PHP HttpResponse::setResponseCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HttpResponse
的用法示例。
在下文中一共展示了HttpResponse::setResponseCode方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getResponse
/**
* Executes an HTTP transaction and returns the response.
*
* @param HttpRequest $request
* @return HttpResponse
*/
public function getResponse(HttpRequest $request)
{
$uri = $request->getUrl();
$headers = $request->getHeaders();
$flatHeaders = [];
foreach ($headers as $key => $value) {
$flatHeaders[] = $key . ": " . $value;
}
$flatHeaders[] = 'Connection: Keep-Alive';
$flatHeaders[] = 'Expect:';
$flatHeaders[] = 'Accept-Language: en-GB';
$flatHeaders[] = 'Cache-Control: no-cache';
$flatHeaders[] = 'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)';
$curl = curl_init($uri);
curl_setopt($curl, CURLOPT_HEADER, false);
$payload = $request->getPayload();
switch ($request->getMethod()) {
case "head":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "HEAD");
break;
case "delete":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
break;
case "post":
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
break;
case "put":
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
break;
}
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, $flatHeaders);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
$responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$httpResponse = new HttpResponse();
$httpResponse->setResponseBody($response);
$httpResponse->setResponseCode($responseCode);
return $httpResponse;
}
示例2: HttpResponse
private function &serveFile()
{
// Serve file - we can do this using the writeFile() method, which is memory friendly
$r = new HttpResponse($this->httpRequest->SERVER['httpVersion'], 200);
// Cache?
$useCache = false;
$scriptnameHash = md5($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']);
if (isset($this->httpRequest->headers['Cache-Control']) || isset($this->httpRequest->headers['Pragma'])) {
$ifModifiedSince = isset($this->httpRequest->headers['If-Modified-Since']) ? (int) strtotime($this->httpRequest->headers['If-Modified-Since']) : 0;
$cacheControl = isset($this->httpRequest->headers['Cache-Control']) ? $this->httpRequest->parseHeaderValue($this->httpRequest->headers['Cache-Control']) : array();
$pragma = isset($this->httpRequest->headers['Pragma']) ? $this->httpRequest->parseHeaderValue($this->httpRequest->headers['Pragma']) : array();
// Detect 'If-Modified-Since' (weak) cache validator (http1.1)
if ($ifModifiedSince > 0) {
if (isset($this->http->cache[$scriptnameHash])) {
if ($this->http->cache[$scriptnameHash] == $ifModifiedSince) {
// File has not been changed - tell the browser to use the cache (send a 304)
$useCache = true;
}
} else {
$scriptMTime = filemtime($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']);
$this->http->cache[$scriptnameHash] = $scriptMTime;
if ($scriptMTime == $ifModifiedSince) {
// File has not been changed - tell the browser to use the cache (send a 304)
$useCache = true;
}
}
} else {
if (isset($cacheControl['max-age']) && $cacheControl['max-age'] == 0 && $cacheControl != 'no-cache' && $pragma != 'no-cache' && isset($this->http->cache[$scriptnameHash])) {
$scriptMTime = filemtime($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']);
if ($this->http->cache[$scriptnameHash] == $scriptMTime) {
// File has not been changed - tell the browser to use the cache (send a 304)
$useCache = true;
} else {
// File has been updated - store new mtime in cache
$this->http->cache[$scriptnameHash] = $scriptMTime;
}
clearstatcache();
}
}
}
if ($useCache) {
$r->setResponseCode(304);
$this->write($r->getHeaders());
} else {
$scriptMTime = filemtime($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']);
$r->addHeader('Content-Type: ' . $this->getMimeType());
$r->addHeader('Last-Modified: ' . date('r', $scriptMTime));
if (isset($this->httpRequest->SERVER['HTTP_RANGE'])) {
console('HTTP_RANGE HEADER : ' . $this->httpRequest->SERVER['HTTP_RANGE']);
$exp = explode('=', $this->httpRequest->SERVER['HTTP_RANGE']);
$startByte = (int) substr($exp[1], 0, -1);
$r->addHeader('Content-Length: ' . (filesize($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']) - $startByte));
$this->write($r->getHeaders());
$this->writeFile($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME'], $startByte);
} else {
$r->addHeader('Content-Length: ' . filesize($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']));
$this->write($r->getHeaders());
$this->writeFile($this->http->getDocRoot() . $this->httpRequest->SERVER['SCRIPT_NAME']);
}
// Store the filemtime in $cache
if (!isset($this->http->cache[$scriptnameHash])) {
$this->http->cache[$scriptnameHash] = $scriptMTime;
}
clearstatcache();
}
return $r;
}