何が良いですか?独自のMySQLログがあるため、約90MBありますが、どちらを使用すべきかわかりません。実行するクエリがあるたびにファイルを開きます。
より速いのは何ですか?
この関数は、fopen()、fwrite()、fclose()を連続して呼び出してデータをファイルに書き込むことと同じです。
ドキュメントを確認してください: http://php.net/manual/en/function.file-put-contents.php
ショーン
ユースケースに依存します。 .5 GBを超えるファイルを開いたが、確かにfile()またはfile_get_contents()を使用したくなかった。また、ファイルを読み取る必要があるため、file_put_contentsが機能しませんでした。
読むことなくファイルを追加することに本当に興味があるなら、それはそれほど重要ではありません。ファイル全体をメモリに読み込む(またはメモリからファイル全体を書き込む)場合、同様に実際には問題ではありません。速度の向上は、これまで見てきたように丸め誤差です。
しかし、これらのファイルが巨大な獣に成長することを期待している場合、または特定のファイルの行数の小さなサブセットのみが必要な場合は、fopen(またはSplFileObject
、これはすばらしい)十分に強力です-これらを使用してファイルの途中から読むのは本当に簡単です。
一方、ログを記録しているだけなので、個人的には、appendフラグを付けてfile_put_contentsを使用する方がより明確で簡潔です。二度見なくても、誰もが何が起こっているかを知ることができます。
いつものように、あなたはそれをベンチマークしましたか? file_put_contentsは基本的に3 f*()
呼び出しの単なるラッパーなので、せいぜい1つの追加の関数呼び出しを行うことで負けてしまいますが、解析するフロントエンドコードが少なくなることでいくらか得られます。