Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 fopen으로 폴더 생성하기: is_dir과 mkdir 활용법

PHP의 fopen 함수는 파일을 열거나 생성하는 데에만 사용할 수 있으며, 폴더(디렉터리)를 생성하는 기능은 제공하지 않습니다. fopen은 오직 파일 단위로만 동작하기 때문에, 파일이 위치할 디렉터리가 존재하지 않으면 fopen 호출 자체가 실패하게 됩니다.

fopen 사용 전 디렉터리 존재 여부 확인하기

따라서 fopen을 사용하기 전에 is_dir 함수로 해당 디렉터리가 이미 존재하는지 먼저 확인하고, 존재하지 않는다면 mkdir 함수로 새로 생성해 주어야 합니다.

$filename = '/path/to/file.txt';
$dirname = dirname($filename);
if (!is_dir($dirname)) {
    mkdir($dirname, 0755, true);
}

코드 동작 방식

  • dirname($filename): 파일 경로에서 디렉터리 경로 부분만 추출합니다.
  • is_dir($dirname): 해당 디렉터리가 실제로 존재하는지 검사합니다. 이미 존재한다면 아무 작업도 수행하지 않습니다.
  • mkdir($dirname, 0755, true): 디렉터리가 없을 경우 지정된 접근 권한(0755)으로 생성하며, 세 번째 인자를 true로 설정하면 중첩된 하위 디렉터리까지 한 번에 생성할 수 있습니다.

이처럼 is_dir로 존재 여부를 사전에 점검하면 불필요한 중복 생성을 막을 수 있고, 필요한 경우에만 mkdir이 실행되어 안전하게 폴더를 준비한 뒤 fopen으로 파일을 자유롭게 다룰 수 있습니다.