로그인 회원가입
모두인포
전체IT경제사회생활스포츠시사여행연애

PHP 파일 제어(file handling)

lmkfox · 2025-08-03 · 조회 0
PHP 파일 제어(file handling)
1. 파일 열기 (fopen) $fp = fopen("data.txt", "r"); 주요 모드 종류 모드 설명 'r' 읽기 전용. 파일이 있어야 함 'w' 쓰기 전용. 파일이 없으면 생성, 있으면 내용 삭제 'a' 쓰기 전용. 파일 끝에 추가. 파일이 없으면 생성 'x' 쓰기 전용. 새 파일만. 이미 있으면 실패 'r+' 읽기/쓰기. 파일이 있어야 함 'w+' 읽기/쓰기. 파일을 새로 만듬 (내용 삭제) 'a+' 읽기/쓰기. 파일 끝에 추가. 없으면 생성 2. 파일 쓰기 (fwrite) $fp = fopen("data.txt", "w"); fwrite($fp, "Hello, world\n"); fclose($fp); - 파일이 없으면 생성됨 - fwrite()는 파일 포인터 위치에 데이터를 씀 3. 파일 읽기 1)  fgets()  — 한 줄씩 읽기 $fp = fopen("data.txt", "r"); while (!feof($fp)) { $line = fgets($fp); echo $line; } fclose($fp); 2)  fread()  — 지정한 길이만큼 읽기 $fp = fopen("data.txt", "r"); $content = fread($fp, filesize("data.txt")); fclose($fp); 3)  file()  — 전체 파일을 배열로 읽기 $lines = file("data.txt"); foreach ($lines as $line) { echo $line; } 4)  file_get_contents()  — 파일 전체를 문자열로 읽기 $content = file_get_contents("data.txt"); echo $content; 4. 파일 존재 여부 확인 if (file_exists("data.txt")) { echo "파일이 존재합니다"; } 5. 파일 삭제 unlink("data.txt"); 6. 파일 이름 변경 / 이동 rename("oldname.txt", "newname.txt"); 7. 파일 닫기 fclose($fp); 파일을 열었으면 항상 닫는 것이 좋습니다. (자원 누수 방지) 8. 파일 권한 확인 및 설정 chmod("data.txt", 0644); // 퍼미션 변경 (Linux/Unix) if (is_readable("data.txt")) { echo "읽기 가능"; } 9. 파일 잠금 다중 사용자 환경에서는 파일 잠금이 필요할 수 있습니다. $fp = fopen("data.txt", "r+"); if (flock($fp, LOCK_EX)) { fwrite($fp, "추가 내용"); flock($fp, LOCK_UN); } fclose($fp); 모드 설명 LOCK_SH 공유 잠금 (읽기 전용) LOCK_EX 배타 잠금 (쓰기용) LOCK_UN 잠금 해제 10. 디렉터리 제어 디렉터리 생성/삭제 mkdir("new_folder"); rmdir("new_folder"); 디렉터리 열기 및 파일 목록 읽기 $dir = opendir("target_folder"); while (($file = readdir($dir)) !== false) { echo $file . "<br>"; } closedir($dir); 11. 실전 예시: 파일에 로그 저장 $log = "[" . date("Y-m-d H:i:s") . "] 사용자 접속\n"; file_put_contents("access.log", $log, FILE_APPEND); - file_put_contents()는 쓰기와 생성, 덮어쓰기 등을 간단하게 처리 - FILE_APPEND를 지정하면 기존 내용 뒤에 덧붙임 12. 에러 처리 $fp = @fopen("data.txt", "r"); if (!$fp) { die("파일을 열 수 없습니다"); } @ 연산자는 오류 메시지를 숨깁니다. 실무에서는 try-catch 또는 error_log()와 함께 처리하는 것이 좋습니다. 요약 작업 함수 파일 열기 fopen() 파일 닫기 fclose() 파일 쓰기 fwrite(), file_put_contents() 파일 읽기 fgets(), fread(), file_get_contents() 파일 존재 확인 file_exists() 파일 삭제 unlink() 파일 이름 변경 rename() 디렉터리 작업 mkdir(), rmdir(), opendir() 등 파일 잠금 flock() 읽기/쓰기 권한 확인 is_readable(), is_writable()

댓글

아직 댓글이 없습니다.

로그인 후 댓글을 남길 수 있습니다.