반응형
이 글은 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") 를 사용하여 정상화할 수 있습니다.
트랜스코딩 문제, 특수 상황, 특수 처리, 상황에 따라 결정
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
thinkphp5에서 문자열을 가로채는 방법에는 어떤 것들이 있나요?(두 가지 방법으로 실현) (0) | 2022.07.25 |
---|---|
php 인터페이스 보안: php 인터페이스 암호화를 위한 네 가지 시나리오 (0) | 2022.07.25 |
php 내보내기csv 형식의 Excel 파일 구현 코드 (0) | 2022.07.25 |
php의 max,min 함수 상세 내역 (0) | 2022.07.23 |
PHP에서 가변 변수와 php 가변 함수는 도대체 무슨 소용이 있습니까? (0) | 2022.07.23 |