read_csv.csv
,강사,과목 월요일,김철수,수학 화요일,이만수,과학 수요일,박춤,댄스 목요일,최고음,음악 금요일,구민철,사회 토요일,리차드,"영어1 영어2" ,, ,, 일요일,-,-
136.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CSV 파일을 읽음</title>
<link href="style.css" rel="stylesheet">
</head>
<body>
<div>
<?php
// h() 함수를 불러옴
require_once 'h.php';
// CSV 파일은 Windows의 엑셀에서 작성한 SJIS 인코드
$csvFile = './read_csv.csv';
if( !file_exists($csvFile) )
{
die('파일이 존재하지 않음');
}
// 문자 깨짐 방지
// CSV 파일의 내용을 모두 넣음
$tempCSV = file_get_contents($csvFile);
// 문자 인코딩을 UTF-8로 변환함
$tempCSV = mb_convert_encoding($tempCSV, 'UTF-8', 'EUC-KR');
// 임시 파일에 저장함
$fp = tmpfile();
fwrite($fp, $tempCSV);
// 파일 포인터를 처음으로 되돌림
rewind($fp);
// 로케일을 설정함
setlocale(LC_ALL, 'ko_KR.UTF-8');
// 한 줄씩 읽고 표를 생성함
$html = '<table>';
while( $arr = fgetcsv($fp) )
{
if( !array_diff($arr, array('')) )
{
continue;
}
list($day, $teacher, $subject) = $arr;
// nl2br() 함수에서 요소 안의 줄 바꿈을 <br>로 변환함
$html .= '<tr>'
. '<td>' . nl2br(h($day), false) . '</td>'
. '<td>' . nl2br(h($teacher), false) . '</td>'
. '<td>' . nl2br(h($subject), false) . '</td>'
. '</tr>';
}
$html .= '</table>';
// 파일의 잠금을 해제함
fflush($fp);
flock($fp, LOCK_UN);
// 파일을 닫음
fclose($fp);
// 브라우저에 출력함
echo $html;
?>
</div>
</body>
</html>
|
- CSV 파일을 출력하고 싶을 때
- fputcsv() 함수를 사용하여 배열 데이터를 CSV 파일에 기록함


댓글 없음:
댓글 쓰기