知识大全 PHP中fwrite与file
Posted 知
篇首语:休言女子非英物,夜夜龙泉壁上鸣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP中fwrite与file相关的知识,希望对你有一定的参考价值。
PHP中fwrite与file 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
这里测试的是往文件中写一百万行记录 如果数据量很小 比如 条左右的记录 可能差距不大function microtimeFloat() list($usec $sec) = explode(" " microtime()); return((float)$usec + (float)$sec);
测试file_put_contents
复制代码 代码如下: <?php $userCount = ; $itemCount = ; $file = ratings txt ; file_exists($file) &&unlink($file);$timeStart = microtimeFloat(); for ($i = ; $i < $userCount; $i++) $uid =random( ); for ($j = ;$j < $itemCount; $j++) $itemId = mt_rand( ); $rating = $j == ? : mt_rand( ) / ; $line = sprintf("%s %d %s\\n" $uid $itemId $rating); file_put_contents($file $line FILE_APPEND); $timeEnd = microtimeFloat(); echo sprintf("Spend time: |%s| second(s)\\n" $timeEnd $timeStart); ?>
测试结果: 测试过程中出现了打开文件的错误 而且程序执行完成以后写入的数据不完整 只有 行 漏了 行 最重要的一点是时间花了 秒多 而用fwrite只花了 秒多的时间 差距还是不小的
D:\\myphp\\research>php test php PHP Warning: file_put_contents(ratings txt): failed to open stream:Permission denied in D:\\myphp\\research\\test php on line
Warning: file_put_contents(ratings txt): failed to open stream:Permission denie d in D:\\myphp\\research\\test php on line Spend time: | |second(s)
: xDtLjaeD MG ywifegZvRRQzVBZbbw : xDtLjaeD MG ywifegZvRRQzVBZbbw : xDtLjaeD MG ywifegZvRRQzVBZbbw : xDtLjaeD MG ywifegZvRRQzVBZbbw
测试fwrite
复制代码 代码如下: <?php $userCount = ; $itemCount = ; $file = ratings txt ; file_exists($file) &&unlink($file);$fp = @fopen($file ab ); if (!$fp) die("Open $file failed");
$timeStart = microtimeFloat(); for ($i = ; $i < $userCount; $i++) $uid =random( ); for ($j = ;$j < $itemCount; $j++) $itemId = mt_rand( ); $rating = $j == ? : mt_rand( ) / ; $line = sprintf("%s %d %s\\n" $uid $itemId $rating); fwrite($fp $line); $k++; if ($fp) @fclose($fp); $timeEnd = microtimeFloat(); echo sprintf("Spend time: |%s| second(s)\\n" $timeEnd $timeStart); ?>
测试结果: 写一百万行记录 秒左右写完 对于PHP来说 速度算不错了 这是在我的个人电脑上面测试的 如果在生产机上测试 可能速度还要快一些 D:\\myphp\\research>php test php Spend time: | |second(s)
用fwrite写入的数据是完整的 QOvcZYFJFlFHjiGyGxAc kOXdX Yii QOvcZYFJFlFHjiGyGxAc kOXdX Yii QOvcZYFJFlFHjiGyGxAc kOXdX Yii QOvcZYFJFlFHjiGyGxAc kOXdX Yii
cha138/Article/program/PHP/201311/21319相关参考