안녕하세요
윈도우 10 pro, Apache 2.4 Web Server, PHP 8 환경입니다.
linux 에서는 tail 명령으로
$contents = exec("tail -100 ./20230424.csv"); 형식으로
csv 파일 뒤에서 잘라서 작업이 가능하던데
윈도우에서 csv의 마지막 100개 줄을 array 형태로 변수 저장하는 방법이 어떻게 될까요?
|
답변 2개
채택된 답변
+20 포인트
2023-04-24 (월) 19:47:36
Copy
<?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);
?>
2023-04-24 (월) 19:34:50
이런게 있긴 한데
powershell 에서만 가능하네요.....
답변을 작성하려면 로그인이 필요합니다.