我正在使用PHP和Python构建一个Web应用程序(该站点具有SSL),并且在很长一段时间内,随机地,页面返回标头消息,后跟HTML源,而不是显示页面的内容。 / p>
有时我会在每30次加载页面时发生这种情况,或者在500次左右的情况下发生一次。
它也非常随机。
其他时候它渲染得很好。
这是标题的样子:
HTTP/1.1 200 OKServer: Apache/2.2
Content-Type: text/html; charset=UTF-8
Date: Wed, 22 Feb 2012 10:40:33 GMT
Transfer-Encoding: chunked
Connection: Keep-Alive
66c2
66c2
随机更改
答案 0 :(得分:2)
Apache无法识别.php扩展名并且没有通过PHP模块运行代码(在这种情况下,您会在浏览器中看到您的PHP代码),或者内容类型有问题,因此浏览器将平移并将其显示为文本而不是呈现它。我能想到的唯一另一件事就是PHP有时没有正确地关闭响应。
答案 1 :(得分:1)
这是一个解析chunk-ed内容的简单代码:
//
// Unchunk http content. Returns unchunked content on success,
// false on any errors... Borrows from code posted above by
// jbr at ya-right dot com.
//
function unchunkHttpResponse($str=null) {
if (!is_string($str) or strlen($str) < 1) { return false; }
$eol = "\r\n";
$add = strlen($eol);
$tmp = $str;
$str = '';
do {
$tmp = ltrim($tmp);
$pos = strpos($tmp, $eol);
if ($pos === false) { return false; }
$len = hexdec(substr($tmp,0,$pos));
if (!is_numeric($len) or $len < 0) { return false; }
$str .= substr($tmp, ($pos + $add), $len);
$tmp = substr($tmp, ($len + $pos + $add));
$check = trim($tmp);
} while(!empty($check));
unset($tmp);
return $str;
}