091

[PHP] CSV 파일을 열어 브라우저에 출력하기 본문

Programming Language/PHP

[PHP] CSV 파일을 열어 브라우저에 출력하기

공구일 2025. 5. 7. 00:41
728x90

01. CSV 파일을 열어 브라우저에 출력하기

<?php
$filename = "samplefile.csv";

if( file_exists($filename)) {
    echo "<table border='1' cellpadding='5'>";

    if(($handle = fopen($filename, "r")) !== false){
        while(($data = fgetcsv($handle)) !== false) {
            echo "<tr>";
            foreach($data as $cell) {
                echo "<td>" . htmlspecialchars($cell) . "</td>";
            }
            echo "</tr>";
        }
        fclose($handle);
    } else echo "Error message : Unable to open the file.";
} else echo "Error message : The file does not exist.";
?>

- file_exist( 파일 경로 또는 파일 이름 ) : 주어진 경로에 파일이 존재하는지 확인하는 함수로, 존재할 때 true, 존재하지 않을 때 false를 반환합니다. 

- fopen( 파일명, 모드 ) : 파일을 열고 파일 포인터를 반환하는 함수로, 열면 파일 포인터 리소스를 반환하고, 실패하면 false를 반환합니다. 파일 포인터 리소스는 파일을 열고 내부적으로 어디까지 읽었는 기억하는 핸들(포인터)입니다.

모드 의미 : 설명
r 읽기 : 파일이 존재해야하고 처음부터 읽음
r+ 읽기+쓰기 : 파일이 존재해야하고 처음부터 읽고 씀
w 쓰기 : 파일이 없으면 새로 만들고 있으면 지우고 처음부터 씀
w+ 읽기+쓰기 : 새로 만들거나 기존 내용 지움
a 추가 쓰기 : 파일 끝에 추가함. 없으면 새로 만듦
a+ 읽기+추가 쓰기 : 끝에 추가하고 읽기도 가능
x 새로 만들기 전용 쓰기 : 이미 있으면 에러 발생
x+ 새로 만들기 전용 읽기 + 쓰기 : 파일을 새로 생성하고, 읽기/쓰기 가능

 

- fgetcsv(resource $stream) : csv 파일에서 한 줄을 읽어서 배열(array)로 반환하는 함수, 콤마를 기준으로 잘라서 배열로 반환합니다. false를 반환하면 더 이상 읽을 줄이 없다는 의미입니다.

 

- htmlspecialchars() : 사용자가 입력한 내용을 HTML에 안전하게 출력할 때 쓰는 함수로, < 나 " 같은 HTML 태그처럼 보이는 문자가 있으면, 그걸 문자로 그대로 출력하도록 변환합니다. XSS 공격를 방지하기 위함인데, 웬페이지에 삽인된 스크립트 코드를 사용해 다른 사용자에게 alert와 같은 방법으로 실행하는 공격입니다. 

728x90