반응형
fputcsv를 사용하여 CSV 파일에 BOM 추가
저는 외국어 문자가 포함된 간단한 CSV 파일을 생성하고 있습니다.바이트 순서 표시를 포함하지 않으면 Excel에 외국어 문자가 제대로 나타나지 않습니다(BOM이 있을 때는 정상적으로 나타납니다).
파일이 처음 생성될 때 파일의 시작 부분에 BOM을 추가하려면 어떻게 해야 합니까?제가 다음을 시도해봤는데 작동하지 않습니다 :-/
function processForm($competition, $competitionEntry) {
$BOM = "\xEF\xBB\xBF"; // UTF-8 BOM
$filename = $competition->ID.".csv";
$file = "entries/".$filename;
$fields = array_keys($competitionEntry);
$submittedForm = $competitionEntry;
if(file_exists($file)) {
$fp = fopen($file, 'a');
if($fp &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
} else { // CREATE NEW FILE
$fp = fopen($file, 'w');
if($fp &&
fputcsv($fp, $BOM) && // WRITE BOM TO FILE
fputcsv($fp, $fields) &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
}
return false;
}
저는 fputcsv()가 아니라 fwrite()를 사용하여 BOM을 추가해야 했습니다.
작업 버전은 다음과 같습니다.
if(file_exists($file)) {
$fp = fopen($file, 'a');
if($fp &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
} else {
$fp = fopen($file, 'w');
fwrite($fp, $BOM); // NEW LINE
if($fp &&
fputcsv($fp, $fields) &&
fputcsv($fp, $submittedForm) &&
fclose($fp)) {
return true;
}
}
고마워요, 마크!
언급URL : https://stackoverflow.com/questions/25686191/adding-bom-to-csv-file-using-fputcsv
반응형
'codememo' 카테고리의 다른 글
| 자바, 봄, 동면, 메이븐과 관련하여 읽기 좋은 블로그는 무엇입니까? (0) | 2023.08.31 |
|---|---|
| CORS POST 요청은 일반 JavaScript에서 작동하지만 jQuery에서는 작동하지 않는 이유는 무엇입니까? (0) | 2023.08.31 |
| jQuery 확인란 이벤트 처리 (0) | 2023.08.31 |
| asp.net 의 CultureInfo에서 텍스트 방향을 결정할 수 있는 방법이 있습니까? (0) | 2023.08.31 |
| Javascript 배열 맵 메서드의 Break 문 (0) | 2023.08.31 |