0

クライアントにファイルを提供する (PHP) スクリプトを作成しています。特に、Content-Length ヘッダーが送信されますが、1 バイトだけ多すぎます。コンテンツの長さを別のヘッダーに入れ、2 つを比較したときにこれを発見しました。

$filesize = filesize($file);
header('Content-Length: ' . $filesize);
header('X-Content-Length: ' . $filesize);

結果:

Content-Length: 3481
X-Content-Length: 3480

関数にハードコーディング3480してもheader()、これは結果です。Apache がヘッダーに対してこれを行っていると思われます。

何が原因でしょうか?

編集:状況を説明するために:Zend Frameworkがこれを引き起こしていると思います:現在生産中(および動作中)のコードを、問題が発生するZFにリファクタリングしています。このコードを ZF の外で試してみると、すべて問題ありません。おそらくZFは出力バッファリングを行っており、ヘッダー自体または何かを再送信していますが、私はZFをよく知りません。

4

1 に答える 1

0

これは Apache が行ったものではなく、出力バッファリングと組み合わせた PHP の開始タグの前のスペースです。

于 2011-05-03T09:35:44.483 に答える