gpt4 book ai didi

PHP fopen() 内存效率和使用

转载 作者:可可西里 更新时间:2023-11-01 14:04:08 24 4
gpt4 key购买 nike

我正在构建一个系统来创建大小从几 Kb 到大约 50Mb 不等的文件,这个问题更多是出于好奇而不是其他任何问题。我在网上找不到任何答案。

如果我用

$handle=fopen($file,'w');

我调用之前 $handle 存储在哪里

fclose($handle);

?它是存储在系统内存中,还是某个临时文件中?

其次,我使用一次获取 1024 字节数据的循环构建文件,每次写入数据如下:

fwrite($handle, $content);

然后调用

fclose($handle);

当循环完成并写入所有数据时。但是,使用执行以下操作的循环是否更有效或内存更友好?

$handle = fopen($file, 'a');
fwrite($handle, $content);
fclose($handle);

?

最佳答案

在 PHP 术语中,fopen()(以及许多其他函数)返回 resource .所以 $handle 是引用与您的 $file 关联的文件句柄的资源。

Resources是内存中的对象,它们不会被 PHP 持久化到文件系统。

您当前的方法是两个选项中效率更高的一个。一遍又一遍地打开、写入然后关闭同一个文件的效率低于只打开一次、多次写入然后关闭它的效率。打开和关闭文件需要设置输入和输出缓冲区以及分配其他内部资源,这些都是比较昂贵的操作。

关于PHP fopen() 内存效率和使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12647261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com