[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}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
공대여자
공대여자
공대여자
PHPExcel 1 6
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자
공대여자