대용량 텍스트 파일(200MB)의 줄 수를 효율적으로 계산하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-02 07:38:02
원래의
322명이 탐색했습니다.

How to Efficiently Count Lines in Large Text Files (200 MB )?

메모리 오류 없이 큰 텍스트 파일(200MB)의 줄 계산

file($path)을 사용하여 큰 텍스트 파일의 줄 계산은 다음과 같이 메모리 소모 오류로 이어질 수 있습니다. 전체 파일이 메모리에 로드됩니다. 이 문제를 해결하려면 보다 효율적이고 메모리를 절약하는 접근 방식이 필요합니다.

라인을 효율적으로 계산하는 한 가지 방법은 fgets() 함수를 사용하는 것입니다. 한 번에 한 줄씩 읽고 처리하면 전체 파일이 메모리에 로드되는 것을 피할 수 있습니다.

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

while (!feof($handle)) {
  $line = fgets($handle);
  $linecount++;
}

fclose($handle);

echo $linecount;</code>
로그인 후 복사

이 코드는 읽기 위해 파일을 열고 fgets()를 사용하여 한 번에 한 줄씩 읽습니다. 줄 수를 계산하고 파일 끝에 도달하면 종료됩니다.

줄이 매우 길 수 있는 파일에 특히 유용한 또 다른 접근 방식은 줄 끝 문자를 계산하는 것입니다.

<code class="php">$file = "largefile.txt";
$linecount = 0;
$handle = fopen($file, "r");

while (!feof($handle)) {
  $line = fgets($handle, 4096);
  $linecount += substr_count($line, PHP_EOL);
}

fclose($handle);

echo $linecount;</code>
로그인 후 복사

여기서 substr_count()는 읽은 데이터의 각 청크에서 줄 바꿈 횟수를 계산하는 데 사용됩니다.

이 두 방법 모두 전체 파일을 메모리에 로드하는 대신 줄을 점진적으로 처리하므로 메모리를 덜 사용합니다.

위 내용은 대용량 텍스트 파일(200MB)의 줄 수를 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!