使用fputcsv有什么优点/缺点?

时间:2015-12-11 07:35:46

标签: php fwrite fputcsv

下面的代码来自fputcsv的文档:

<?php
$time_start = microtime(true);
$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);

$time_end = microtime(true);
$time = $time_end - $time_start;
echo "time is: $time";
?> 

time is: 0.0037028789520264
time is: 0.0036959648132324
time is: 0.0037329196929932

为什么不使用类似下面的代码呢?他们似乎有同样的速度?通过这种方式,您可以控制需要使用哪种新行,例如\n\r\n

<?php
$time_start = microtime(true);
$list = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fwrite($fp, implode(',', $fields) . "\n");
}

fclose($fp);

$time_end = microtime(true);
$time = $time_end - $time_start;
echo "time is: $time";
?> 

time is: 0.0037031173706055
time is: 0.0037119388580322
time is: 0.0036849975585938
  

免责声明:我不知道我是否使用的字段数量太少   基准

1 个答案:

答案 0 :(得分:1)

fputcsv是一个辅助函数。是的,你可以手工制作。在引擎盖下可能会有一些simmelair功能。但实现这种方式并提高可读性更为棘手。你可以投入阵列而不必担心逃跑等等。