[util] php_text_line_split 텍스트를 라인 기준으로 나누기

1

텍스트를 라인 기준으로 나누기

split을 찾아봤는데 대부분 용량으로 나누는 거라서
심심도 했고.. 해서 만들어봤음.

cli 용입니다.

즉, 커맨트 창에서 사용하는거예요.

그리고 파일 이름 잘못 처리하는 버그 있으니.. 주의


소스

<?

ini_set('memory_limit','10M'); //10MB의 메모리 사용

$argv = $_SERVER['argv'];
$argc = $_SERVER['argc'];

//print_r($argv );

if($argc<3){
 echo "EX1 : php php_text_line_split.php FILENAME CUTLINE\n";
 echo "EX2 : php_text_line_split.exec FILENAME CUTLINE";
 exit();
}

if(!is_numeric($argv[2])){
 exit('ERROR : prameter 3 is must INT number.');
}


$F = $argv[1];
$CL = (int)$argv[2];
$F_out = '';

echo "[S]처리시작\n";
echo "처리파일 : {$F}\n";
echo "라인제한 : {$CL}\n";
echo "----------------\n";


$fp = @fopen($F,'r');
if(!$fp){
 exit('ERROR : file open failed.');
}

 

$icont = 0;
$fcount = 0;

//$F_arr = pathinfo($F);
//$F_arr['filename']
//$F_arr['extension']

$F_out_form = preg_replace('/(\.[^\.]*)$/','.{!!COUNT!!}$1',$F);


while (!feof($fp)) {
 if($icont==0){
  $F_out = str_replace('{!!COUNT!!}',sprintf('%03d',$fcount),$F_out_form);
  echo "[+]{$F_out} 파일생성\n";
  $fp_out = fopen($F_out ,'w');
 }else if($icont >= $CL){
  if(isset($fp_out)){
   fclose($fp_out);
  }
  $icont = 0;
  $fcount++;
  $F_out = str_replace('{!!COUNT!!}',sprintf('%03d',$fcount),$F_out_form);
  echo "[+]{$F_out} 파일생성\n";
  $fp_out = fopen($F_out ,'w');
 }
 $icont++;
 fwrite($fp_out,fgets($fp, 8192));
}

if(isset($fp_out)){
 fclose($fp_out);
}
fclose($fp);

echo "[E]처리완료\n";

?>

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
4.28
4.29
4.30
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.11
5.12
5.13
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
6.1