[PHP-users 25101] Re: ファイルの場所を隠す&読み込みながら書き出し

sho @ big.or.jp sho @ big.or.jp
2005年 3月 24日 (木) 17:20:59 JST


こんにちは。

At Thu, 24 Mar 2005 16:35:11 JST,
 萩原 <kahos @ mcn.ne.jp> wrote:
> 
> >readfile は一度ファイルを全部メモリに読み込んでから出力しているわけではなく、
> >逐次データを読み込んでは標準出力に出力しているだけだとおもいます。
> >ただ、出力バッファがあるので、設定が ON になってればファイルがすべてメモリに
> >展開されたように見えるのでしょう。
> >よって、出力バッファを OFF にすればデータはすぐに出力されますので、メモリを
> >消費することもないはずです。
> 
> これは output_buffering のことを指されているのでしょうか

そうです。

> 試しに output_buffering = Off  にしてみたり 1024 と小さい値にしたり
> memory_limit を 8M → 1M → 64M といろいろ値を変えてやってみたのですが
> 逐次データを読み込んで出力しているようには感じることができませんでした。
> 全てを読み込んでから httpサーバに受け渡されて転送が始まっているように
> 感じています。

うーん。変更した設定が反映されているのは確認してますよね?
また、http サーバ側でバッファリングしている可能性もありますがそちらは
どうでしょう?環境がわからないので、なんともいえませんが。

> PHPでは、原理的にファイルを読み込みながら途中でhttpサーバに受け渡して転送しながら
> PHPでファイルを読み続けファイルの転送を完了することが可能なのでしょうか?

可能です。

> 可能なのでしたらやはり原因はスクリプトの書き方なのでしょうか。

設定の問題のような気がします…

-- sho


PHP-users メーリングリストの案内