知识大全 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

相关参考