반응형
Web Development · PHP mkdir
PHP mkdir —
새 폴더(디렉토리) 만들기
is_dir로 존재 검사 후 mkdir로 생성
시작 오늘 분석할 코드
<?php $dirname = "temp"; if(!is_dir($dirname) && mkdir($dirname)){ print $dirname."를 만들었습니다."; }else{ print $dirname."는 만들 수 없습니다."; } ?>
"이미 있지 않을 때만 만든다"는 안전 패턴. !is_dir로 존재 안 함을 확인하고 mkdir 시도.
용어 용어 정리
mkdir()make directory — 폴더 생성
is_dir()디렉토리 존재 여부
반환값true (성공) / false (실패)
두 번째 인자권한 (예: 0755) — 기본 0777
세 번째 인자true 면 중첩 폴더도 한 번에 생성
반대rmdir — 폴더 삭제
권한 필요상위 디렉토리 쓰기 권한
실무업로드 폴더 자동 생성
1 매개변수
mkdir($경로); // 기본 — 권한 0777 mkdir($경로, 0755); // 권한 명시 mkdir($경로, 0755, true); // 부모 폴더도 자동 생성 (재귀)
2 재귀 생성 — 세 번째 인자 true
// 한 번에 여러 단계 생성 mkdir("uploads/2026/05/03", 0755, true); // uploads, 2026, 05, 03 폴더가 차례로 생성됨
없으면 부모 폴더부터 차례로 만들어준다. 매우 편리한 옵션.
3 권한 (mode)
| 권한 | 의미 |
|---|---|
0777 |
모두 읽기·쓰기·실행 (기본 — 보안↓) |
0755 |
소유자 모두, 그 외 읽기·실행 (권장) |
0700 |
소유자만 가능 (가장 엄격) |
※ Windows에서는 권한 모드가 무시된다. 리눅스/유닉스에서만 의미. 또한 PHP 프로세스의 umask가 적용되므로 실제 권한은 다를 수 있다.
반응형
4 자주 하는 실수
· 권한 없는 디렉토리에 mkdir → false
· 이미 있는 폴더에 또 mkdir → 경고 + false
· 깊은 경로를 한 번에 만드려 함 →
· 사용자 입력을 그대로 폴더명으로 → 보안 위험
· 이미 있는 폴더에 또 mkdir → 경고 + false
· 깊은 경로를 한 번에 만드려 함 →
true 옵션 안 줘서 실패· 사용자 입력을 그대로 폴더명으로 → 보안 위험
핵심 한 줄 요약
mkdir()새 폴더(디렉토리) 생성
is_dir과 짝중복 생성 시도 방지
반환true/false
권한기본 0777, 보통 0755 권장
재귀3번째 인자 true → 부모도 함께
윈도우권한 모드 무시
반대rmdir — 폴더 삭제
반응형
'php' 카테고리의 다른 글
| PHP pathinfo — 파일 경로의 디렉토리·이름·확장자 추출 완전 정리 (0) | 2026.06.16 |
|---|---|
| PHP rmdir — 빈 폴더 삭제 완전 정리 (0) | 2026.06.16 |
| PHP unlink — 파일 삭제 완전 정리 (0) | 2026.06.16 |
| PHP copy — 파일 복사 완전 정리 (0) | 2026.06.16 |
| PHP file_put_contents — 파일에 한 번에 쓰기 완전 정리 (0) | 2026.06.16 |
왕진 블로그

댓글