CSV 파일의 역방향 PHP 읽기
P粉512729862
P粉512729862 2023-08-08 18:24:19
0
2
645
<p>CSV 파일을 읽는 PHP 스크립트가 있는데 마지막 줄부터, 즉 역순으로 읽으려고 합니다. </p> <pre class="brush:php;toolbar:false;"><?php $f = fopen("./data/data-esp8266-$idluf-$currentdata.csv", "r"); fgets($f); while (($line = fgetcsv($f)) !== false) { $행 = $라인[0]; $cells = 폭발(";",$row); echo "<tr>n"; foreach($cell을 $cell로) { echo "<td><a style='text-장식:none;color:#fff;' class='tooltip' data-tool=' $cell'>" . /a></td>n"; } echo "</tr>n"; } fclose($f); ?></pre> <p><br /></p>
P粉512729862
P粉512729862

모든 응답(2)
P粉118698740

읽고 싶은 파일이 구분 기호로 줄 바꿈만 있는 "간단한" 파일인 경우 뒤에서 앞으로 읽는 것은 매우 간단합니다. 그러나 CSV는 필드 및 행 구분 기호, 따옴표(따옴표) 및 이스케이프 문자를 포함하는 더 복잡한 형식입니다.

와 같은 데이터가 나타날 수 있습니다. 으아아아

이것은 완벽하게 유효한 CSV이지만 현재 포럼에서 제안된 대부분의 솔루션은 데이터를 역으로 읽는 데 문제가 있습니다.

가장 신뢰할 수 있는 방법은 먼저 파일의 시작 부분부터 데이터를 읽은 다음 이 정보를 사용하여 데이터를 역순으로 읽는 것입니다. 가장 간단한 버전은 모든 것을 배열에 직접 넣은 다음 다음과 같이 배열을 역순으로 읽는 것입니다.

으아아아

그러나 대용량 파일을 처리하는 경우 모든 데이터를 저장해야 하므로 메모리 제한이 발생할 수 있습니다.

대안은 파일을 한 번 읽은 다음 레코드 시작 부분에 파일 오프셋을 저장한 다음 해당 오프셋을 사용하여 다시 뒤로 반복하는 것입니다.


으아아아

파일을 두 번 통과해야 한다는 절충안이 있지만 메모리 제약이 있는 경우 이 작업을 수행해야 합니다.

이 모든 것을 고려해 볼 때 더 나은 옵션은 가능하면 데이터베이스가 데이터를 쉽게 재정렬할 수 있는 데이터베이스에 데이터를 저장하는 것입니다. 이 코드는 이미 데이터베이스 관련 기능을 어느 정도 재구현했지만 상황은 훨씬 더 나쁩니다.

P粉513316221

또는 for 루프를 사용할 수도 있습니다

으아아아

이 방법은 array_reverse() 함수를 기반으로 하는 다른 방법보다 빠릅니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿