以下のコードは、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
免責事項:ベンチマークに使用するフィールドの数が少なすぎるかどうかはわかりません
fputcsvはヘルパー関数です。はい、手動で行うことができます。ボンネットの下では、おそらくいくつかのsimmelair機能があります。しかし、この方法を実装する方が簡単で、読みやすさが向上します。配列を投入するだけで、エスケープなどを心配する必要はありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加