테스트 사이트 - 개발 중인 베타 버전입니다

PHP 윈도우에서 csv 파일 맨 끝 100개만 읽을려면? 채택완료

주민 2년 전 조회 1,600

안녕하세요

윈도우 10 pro, Apache 2.4 Web Server, PHP 8 환경입니다.

linux 에서는 tail 명령으로

$contents = exec("tail -100 ./20230424.csv"); 형식으로

csv 파일 뒤에서 잘라서 작업이 가능하던데

 

윈도우에서 csv의 마지막 100개 줄을 array 형태로 변수 저장하는 방법이 어떻게 될까요?

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
2년 전

</p>

<p><?php

function file_of_last_n_line($filepath, $linenum) {

    $t = null;

    $offset = -1;

    $line = 0;

    $content = '';

    $contents = [];</p>

<p> </p>

<p>    $fp = fopen($filepath, 'r');</p>

<p> </p>

<p>    while ($line < $linenum) {

        $isseek = fseek($fp, $offset, SEEK_END);</p>

<p>        $t = fgetc($fp);</p>

<p>

        if ($t == "\n" || $isseek == -1) {

            $line++;

            $content = strrev($content);

            array_unshift($contents, $content);

            $content = '';

        } else {

            $content .= $t;

        }

        $offset--;</p>

<p> </p>

<p>        if ($isseek == -1) {

            break;

        }

    }</p>

<p> </p>

<p>    fclose($fp);</p>

<p> </p>

<p>    return $contents;

}</p>

<p>

$contents = file_of_last_n_line('f.txt', 100);

print_r($contents);

?></p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인