©
本文档使用
php.cn手册 发布
(PECL pecl_http >= 0.10.0)
HttpResponse::send — Send response
$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 ();
?>
[#1] 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
<note>Thank you for posting your data! We love php!</note>');
//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"?>
HttpResponse::send();
?>
[#2] 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.