조회 : 131
텍스트를 라인 기준으로 나누기
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";
?>
제목 |
---|
[기본형] 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.14
|
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
|