2012-03-21 4 views
1

많은 파일이있는 카탈로그가 있습니다. 이 모든 파일의 모든 행을 계산하고 내 웹 사이트에 총 행을 인쇄하려고합니다. 어떻게 서버 손실이나 그다지 많은 일을하지 않고 이것을 수행 할 수 있습니까?많은 텍스트 파일의 행 수를 계산하고 총 행 수를 얻으십시오.

미리 감사드립니다.

+0

이 파일은 계속 변경됩니까? 그것들이 꽤 정적이라고 가정 할 때 가끔씩 만 계산하고 출력을 파일에 저장하는 것이 더 좋습니다. –

+0

또한 파일이 방대합니까? 메소드를 읽는 데 차이가 발생합니다. 예를 들어,'substr_count (file_get_contents ($ filename), "\ n")'는 많은 작은 파일에서는 괜찮지 만 큰 파일에서는 메모리를 먹습니다. –

+0

모든 SQL 오류를이 파일에 등록하는 기능이 있습니다. 즉, 파일은 계속 변경됩니다. 파일의 크기는 하루에 많이 발생하지 않는 오류의 양에 따라 다릅니다. – Erik

답변

2

파일이 큰 경우 각 파일의 줄 수를 계산하려면 wc -l $filename을 사용합니다. 크기가 아주 작은 경우 count(file($filename)) 크기에 관계없이이 정보를 어딘가에 캐시해야합니다. 이 정보를 저장하기 위해 데이터베이스를 사용하지 않는 이유가 있습니까?

+0

내가 텍스트 파일에 오류를 저장하도록 선택했을 때 주된 이유는 언젠가는 많은 오류가 발생했을 때 데이터베이스를 많이 강조하지 않았기 때문이다. 그러나 이것은 내가 생각한 것처럼 그렇게 진실하지 않을 수 있습니까? – Erik

+0

다른 주된 이유는 오류가 함수에 있으면 오류 메시지를 등록 할 수 없다는 것입니다. 이러한 이유로 텍스트 파일에 오류 메시지를 저장하는 것이 좋습니다. – Erik

+1

그건 이해할 수 있습니다. 나는 당신이 SQL 오류 로그를 위해 사용하고 있다고 대답하기 전에 답을 게시했다. 정말로, mysql 에러 로그는 하나의 파일에 저장되어야한다. 그러나'wc -l'을 사용하여 줄 수를 계산합니다. 아마도 cron 작업을 몇 시간마다 업데이트하거나 매 시간마다 업데이트 할 수도 있습니다. – Rob

관련 문제