데이터베이스를 사용하지 않고도 텍스트 파일 단위로 데이터를 읽고 쓰는 파일 I/O(Input/Output) 기능은 프로그래밍의 기본입니다. 특히 시스템 활동 내역을 기록하는 로그(Log) 파일 작성, 간단한 설정 파일(Config)을 저장하거나 읽어올 때 필수적으로 사용됩니다. 파일을 열고(Open), 조작(Read/Write)하고, 닫는(Close) 일련의 스트림 생명주기를 완벽히 이해해 봅니다.
👉 파일 열기 모드(Mode) 완벽 정리 📊
모드 (Mode)
기능 및 동작
파일이 없을 경우
r (Read)
읽기 전용. 파일 포인터는 파일의 맨 처음을 가리킵니다.
에러 발생 (실패)
w (Write)
쓰기 전용. 기존 내용이 완전히 삭제되고 새로 덮어씁니다.
새 파일을 생성함
a (Append)
이어 쓰기 전용. 파일 내용의 맨 끝(마지막)에 내용을 추가합니다.
새 파일을 생성함
x (Exclusive)
생성 후 쓰기 전용. 파일이 이미 존재하면 무조건 실패합니다 (안전한 파일 생성).
새 파일을 생성함
DB 없이 데이터 보관하기: 파일 I/O 📁
텍스트 파일을 읽어오거나 텍스트를 파일에 저장할 수 있습니다. 로그(Log)를 남길 때 주로 사용됩니다.
파일 입출력 생명주기
file_io.php
<?php
$filename = "log.txt";
// 1. 파일 쓰기 (w: 덮어쓰기, a: 이어쓰기)
$file = fopen($filename, "a") or die("파일을 열 수 없습니다.");
$txt = "새로운 로그 기록 - " . date("H:i:s") . "\n";
fwrite($file, $txt);
fclose($file);
// 2. 파일 존재 여부 확인 후 읽기
if (file_exists($filename)) {
// file_get_contents: 파일 내용을 한 번에 문자열로 가져옴
echo nl2br(file_get_contents($filename));
}
?>