在输出文件时,"echo"块有什么好处?

Che*_*rma 5 php performance file

以下是有益和区别的:

声明1:

header("Content-type: image/jpeg");
header('Expires: ' . date('r',time() + 864000));
header("Pragma: public");
header("Cache-Control: public");
header("Content-Length: " . strlen($contents));
$splitString = str_split($contents, 1024);
foreach($splitString as $chunk)
echo $chunk;
Run Code Online (Sandbox Code Playgroud)

声明2:

header("Content-type: image/jpeg");
header('Expires: ' . date('r',time() + 864000));
header("Pragma: public");
header("Cache-Control: public");
header("Content-Length: " . strlen($contents));
echo $contents;
Run Code Online (Sandbox Code Playgroud)

sha*_*mar 3

由于 TCP/IP 数据包的缓冲方式,使用echo向客户端发送大字符串可能会导致严重的性能下降。有时,它可能会导致脚本的处理时间增加一整秒。当使用输出缓冲时甚至会发生这种情况。

如果需要回显一个大字符串,请先将其分成较小的块,然后回显每个块。因此,对于大文件,使用方法 1 拆分字符串或使用substr拆分字符串并将其发送到客户端的速度比方法 2 更快。