在PHP中将字符数组写入文件的最快方法是什么?

时间:2014-07-24 17:14:22

标签: php fwrite string-concatenation

假设我有一个数组$arr,我想将其内容写入文件$handle。在PHP(5)中执行此操作的最快/最有效的方法是什么?

一些不同的选择:

使用implode:

将数组转换为字符串
$string = implode($arr);
fwrite($handle, $string);

通过char将它写入char文件(看起来对我来说会慢一些):

foreach($arr as $char) {
    fwrite($handle, $char);
}

使用.运算符连接,然后写:

$string = '';
foreach($arr as $char) {
    $string .= $char;
}
fwrite($handle, $string);

第三个看起来对我来说似乎是最慢的,因为我猜测fwrite和implode是用C语写的......但是这些天再次使用JIT编译可能它会优化连接没有函数调用开销。

其中哪一种 - 或其他方式 - 是最快的,为什么?

1 个答案:

答案 0 :(得分:3)

不确定最快/最有效;但这会打开文件,将内爆数据写入文件并在一个函数中关闭文件:

file_put_contents('/path/to/file.txt', $arr);