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);
?>
이런게 있긴 한데
powershell 에서만 가능하네요.....
답변을 작성하시기 전에 로그인 해주세요.