HttpResponse
在线手册:中文  英文

HttpResponse::send

(PECL pecl_http >= 0.10.0)

HttpResponse::sendSend response

说明

static bool HttpResponse::send ([ bool $clean_ob = true ] )

Finally send the entity.

A successful caching attempt will exit PHP, and write a log entry if the INI 设置 http.log.cache is set. 要知道“出口”的含义请查阅 INI 设置 http.force_exit

参数

clean_ob

whether to destroy all previously started output handlers and their buffers

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE

范例

Example #1 A HttpResponse::send() example

<?php
HttpResponse
::setCache(true);
HttpResponse::setContentType('application/pdf');
HttpResponse::setContentDisposition("$user.pdf"false);
HttpResponse::setFile('sheet.pdf');
HttpResponse::send();
?>

参见


HttpResponse
在线手册:中文  英文

用户评论:

lymber (2010-01-18 21:35:19)

how to respond to a http request
Note that if you output data before sending the response then you will get a warning saying: Cannot modify header information - headers already sent. So do not echo any data in your responding script. 
<?php
//process the request by fetching the info
$headers http_get_request_headers();
$result http_get_request_body();
//do stuff with the $headers and $result variables....
//then send your response
HttpResponse::status(200);
HttpResponse::setContentType('text/xml');
HttpResponse::setHeader('From''Lymber');
HttpResponse::setData('<?xml version="1.0"?><note>Thank you for posting your data! We love php!</note>');
HttpResponse::send();
?>

mbyrd at cloudcache dot net (2008-09-10 14:35:35)

I figured out a way to return a response and then keep doing lots of other work:
<?php

HttpResponse
::setCache(true);
HttpResponse::setContentType('text/html');       
HttpResponse::setData("<html>hellow world...</html>");
HttpResponse::send();

flush();
// Response has been sent

sleep(30);

define_syslog_variables();
openlog("cloudcacheLog"LOG_PID LOG_LOCAL0);
syslog(LOG_INFO"Writing log well after send and flush...");

?>

Response time according to LORI (firefox addon):  0.130s - tailing /var/log/syslog - message hits 30 seconds later.

barnett dot [NOSPAM]thomas at gmail dot com (2008-05-25 21:31:35)

I was having a problem with the bytes appended to the output, using the given example. 

<?php
...
HttpResponse::setFile('sheet.pdf');
HttpResponse::send();
?>

Content-Length mismatch: Response Header claimed x bytes, but server sent x+5 bytes.

Adding an exit statement solved this problem.

易百教程