0

PHP と Python (サイトには SSL があります) を使用して Web アプリを構築していますが、非常に長い間、ページのコンテンツを表示するのではなく、ヘッダー メッセージに続いて HTML ソースがランダムに返されます。

これは、ページをロードする 30 回に 1 回、または 500 回に 1 回発生することがあります。

それも非常にランダムです。

それ以外の場合は、問題なくレンダリングされます。

ヘッダーは次のようになります。

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変化はランダム

4

2 に答える 2

2

Apache が .php 拡張子を認識せず、PHP モジュールを介してコードを実行していないか (この場合、PHP コードがブラウザーに表示されます)、またはコンテンツ タイプに問題があり、ブラウザーがパントして、レンダリングする代わりにテキストとして表示します。私が頭のてっぺんから考えられる唯一のことは、PHPが応答を適切に閉じていないことがあることです。

于 2012-02-24T03:16:57.627 に答える
1

チャンク化されたコンテンツを解析する簡単なコードを次に示します。

//
// 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;
}
于 2012-02-24T03:18:17.627 に答える