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

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

QA

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

본문

안녕하세요

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

linux 에서는 tail 명령으로

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

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

 

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

 

이 질문에 댓글 쓰기 :

답변 2


<?php
function file_of_last_n_line($filepath, $linenum) {
    $t = null;
    $offset = -1;
    $line = 0;
    $content = '';
    $contents = [];
 
    $fp = fopen($filepath, 'r');
 
    while ($line < $linenum) {
        $isseek = fseek($fp, $offset, SEEK_END);
        $t = fgetc($fp);

        if ($t == "\n" || $isseek == -1) {
            $line++;
            $content = strrev($content);
            array_unshift($contents, $content);
            $content = '';
        } else {
            $content .= $t;
        }
        $offset--;
 
        if ($isseek == -1) {
            break;
        }
    }
 
    fclose($fp);
 
    return $contents;
}

$contents = file_of_last_n_line('f.txt', 100);
print_r($contents);
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT