如何在php aka file_put_contents vs fopen + fwrite中将单维数组写入文件

Ube*_*zzy 1 php arrays

数据: $data = array('Alice', 'Bob', 'Carol', 'David', 'Elizabeth', 'Frank');


方法A:

file_put_contents('filename.ext', implode("\n", $data) );

方法2:

$fp = fopen('filename.ext', 'w');
foreach($data as $name)
{
  fwrite($fp, $name . "\n");
}
fclose($fp);

一种方法是否对另一种方法有重大处罚?

任何明显更快的速度,即使是成本?免费?

喜好?这是情境化的吗?你会在生产代码和1次一次性抛弃脚本中使用哪种?

注意:请忽略检查文件名是否可写的任何问题,或者filepointer是否为false.假设0摩擦,一切都"正常".

cle*_*tus 6

使用serialize()而不是半生不熟的模仿:

file_put_contents('filename.ext', serialize($data));
Run Code Online (Sandbox Code Playgroud)

除非您因任何原因需要该文件是人类可读和/或可编辑的,在这种情况下您需要仔细考虑您要持久存储的数据,以便您可以提出一种强大的存储方式.

至于file_put_contents()你的循环,file_put_contents()除非你做不到.它代码更少,更易于阅读.我怀疑与实现有任何实际差异,即使它们是,因此将文件写入磁盘的性能与您写入磁盘的事实相比是相形见绌的.不要为小(不相关)的东西流汗.