개발 꿀팁/PHP

php는 open, fwrite를 이용하여 다양한 형식의 파일(코드)을 내보냅니다

Jammie 2022. 7. 25. 13:15
반응형

이 글은 php가 open, fwrite를 이용하여 다양한 형식의 문서(코드)를 도출해내는 것에 관한 것으로, 참고가치가 있으니 꼭 참고하시어 도움이 되시기 바랍니다

소스 코드 분석

<?php

/**

 * Created by PhpStorm.

 * User: Jason0727

 * Date: 2018/8/9

 * Time: 14:48

 */header("Content-Type: text/html;charset=utf-8");//파일 이름 정의

 $fileName = "테스트 파일 이름_" . date('YmdHis');//파일명 중간에 공백 // 파일명 코드변환 불가하여 코드왜곡 방지

 $fileName = iconv('UTF-8','GBK',$fileName);///파일 접미사

 $ext = ".csv";//$ext = ".txt";//필드 간 스플라이싱 기호//

 $dot = "|";$dot = ",";//파일 핸들을 열고 권한을 부여해야지, 그렇지 않으면 오류를 보고해야 한다

 $fp = fopen("./files/" . $fileName . $ext,"a") or die("unable to open file!");//목록 이름이 필요한지 여부, 0= > 필요 없음, 기본값은 1

 $is_need_headerList = 1;//필요 여부 감지

 headerListif($is_need_headerList == 1){    //목록 이름 정의

    $headerList = ['목록1','목록2','목록3'];    //파일에 쓸 문자열을 초기화합니다

    $headerTxt = "";    //목록 이름 변환

    foreach ($headerList as $v){        

    $headerTxt .= $v. $dot;

    }    

    $headerTxt = rtrim($headerTxt,$dot)."\n";    //파일 핸들에 목록 이름 쓰기

    fwrite($fp, $headerTxt);

}//배열 데이터 초기화 $data = [

    ['id'=>'값1','name'=>'값2','hobby'=>'값3'],

    ['id'=>'값11','name'=>'값22','hobby'=>'값33'],

    ['id'=>'값111','name'=>'값222','hobby'=>'값333']

];

// 순환 데이터 // 초기화 배열의 총 수

$count = count($data);//순환 횟수

$limit = 0;foreach ($data as $v){    

$limit++;    

$txt = $v['id'] .$dot . $v['name'] .$dot .$v['hobby'];    

if($count != $limit)//마지막 줄 바꿈을 피하다

        $txt .= $dot .PHP_EOL;

    fwrite($fp,$txt);

}

fclose($fp);

 

FAQ 분석
문자열에 특수 문자가 포함되어 있어 인코딩 변환 시 // IGNORE를 설정해야 합니다. 그렇지 않으면 오류가 발생합니다

$c = "테스트 • 문자 교환 • 메이데이 해피!";echo iconv('UTF-8','GBK//IGNORE',$c);//5월 1일 해피엔딩으로 문자 바꾸기!echo iconv('UTF-8','GBK',$c);//Detected an illegal character in input string

숫자 문자열이 포맷될 수 있습니다. 보이지 않는 문자( 예: "\t") 를 사용하여 정상화할 수 있습니다.

트랜스코딩 문제, 특수 상황, 특수 처리, 상황에 따라 결정

반응형