2012-03-21 12 views
1

私は多くのファイルを持つカタログを持っています。私はこれらのファイルのすべての行を数え、私のウェブサイトの行の総数を表示したいと思います。あまりサーバーの損失や何かでこれを達成するにはどうすればいいですか?多くのテキストファイルの行数をカウントし、合計行を取得します

ありがとうございます!

+0

これらのファイルは絶えず変更されていますか?それらがかなり静的であると仮定すると、それらを時々だけ計算し、出力をファイルに保存するほうがよいかもしれません。 –

+0

また、ファイルは膨大ですか?それらを読むためにどのメソッドを使うかに違いがあります。たとえば、 'substr_count(file_get_contents($ filename)、" \ n ")'は小さなファイルがたくさんある場合は問題ありませんが、大きなファイルの場合はメモリを消費します。 –

+0

私はすべてのSQLエラーをこれらのファイルに登録する機能を持っています。言い換えれば、ファイルは常に変化します。ファイルのサイズは1日あたりのエラーの量によって異なりますが、それほど多くはありません。 – Erik

答えて

2

ファイルが大きい場合は、wc -l $filenameを使用して各ファイルの行を数えます。それらが非常に小さい場合は、count(file($filename))のサイズにかかわらず、この情報をどこかにキャッシュする必要があります。この情報を格納するデータベースを使用していない理由はありますか?

+0

私がテキストファイルにエラーを格納することを選択した主な理由は、1日に多くのエラーが発生した場合には、データベースに多くの負荷をかけることではありませんでした。しかし、これは私が思ったほど真実ではないかもしれませんか? – Erik

+0

もう1つの主な理由は、エラーが関数内にある場合、関数はエラーメッセージを登録できないということです。その理由から、エラーメッセージをテキストファイルに保存する方がよいでしょう。 – Erik

+1

それは理解できます。私はあなたがSQLエラーログのためにそれを使用していたとコメントする前に答えを投稿しました。実際、mysqlエラーログは1つのファイルに格納する必要があります。しかし、私は行を数えるために 'wc -l'と一緒に行くでしょう。おそらく数時間ごとにカウントを更新するcronジョブから実行してください。 – Rob

関連する問題