如何在PHP中将body与body一起输出?
问题描述:
有类似的字符串:如何在PHP中将body与body一起输出?
HTTP/1.1 200 OK
Date: Thu, 15 Dec 2011 12:23:25 GMT
Server: Microsoft-IIS/6.0
Content-Length: 2039
Content-Type: text/html
<!DOCTYPE html>
...
是可以将其与一个命令发送的报头+身体?我知道你可以使用header
和echo/print/printf来输出主体,但由于我的字符串完全是我写的形式,为了使用这些函数,我必须将它解析为标题和正文。
我试过写过php://output
,但它似乎认为标题是正文。
答
不,您必须使用header()
。您可以将字符串分成几行,逐行逐行呼叫header()
,直到您遇到空行,然后回复剩下的行。
答
有没有办法(AFAIK)编写标题输出为一个原始字符串 - PHP和Web服务器在后台处理这个默默地,以确保响应是有效的 - 但分裂到头/身体很容易:
function output_response_string ($responseStr) {
// Split the headers from the body and fetch the headers
$parts = explode("\r\n\r\n", $responseStr);
$headers = array_shift($parts);
// Send headers
foreach (explode("\r\n", $headers) as $header) {
$header = trim($header);
if ($header) header($header);
}
// Send body
echo implode("\r\n\r\n", $parts);
}
只要您的响应字符串符合HTTP标准,这将完美工作。
你应该看看http://php.net/manual/en/book.curl.php – Cyclonecode 2011-12-15 12:33:33
@Krister Andersson - cURL是一个HTTP客户端,据我所知你不能用它来发布一个HTTP响应。 – Quentin 2011-12-15 12:35:09
@Quentin - 我正在阅读“是否可以将它作为标题+正文发送”,也许我误解了? – Cyclonecode 2011-12-15 12:42:36