>  기사  >  백엔드 개발  >  PHP에서 mkdir 사용 소개

PHP에서 mkdir 사용 소개

王林
王林앞으로
2020-01-31 21:11:153232검색

PHP에서 mkdir 사용 소개

PHPmkdir을 사용하여 다중 레벨 디렉터리를 만드는 방법

먼저 많은 친구들이 경로만 제공하면 mkdir이 폴더를 만들 수 있다고 생각할 수 있다는 점을 설명하겠습니다. 실제로는 그렇지 않습니다. 단일 MKDIR은 첫 번째 수준 디렉터리만 만들 수 있으며 다중 수준 디렉터리에서는 작동하지 않습니다. 그렇다면 mkdir을 사용하여 디렉터리를 만드는 방법은 무엇입니까?

매뉴얼의 mkdir 설명은 다음과 같습니다.

Instructions

bool mkdir ( string pathname [, int mode [, bool recursive [, resource context]]] )

경로명으로 지정된 새 디렉터리를 만들어 보세요.

참고: 8진수를 사용하여 모드를 지정할 수 있습니다. 즉, 숫자는 0으로 시작해야 합니다. 모드는 현재 umask()로 변경할 수도 있습니다.

참고: Windows에서는 모드가 무시됩니다. PHP 4.2.0부터는 선택사항입니다.

기본 모드는 0777이며, 이는 최대 접속이 가능함을 의미합니다. 모드에 대한 자세한 내용은 chmod() 페이지를 참조하세요.

(추천 무료 학습 동영상 튜토리얼: php 동영상 튜토리얼)

예제 1. mkdir() example

<?php
mkdir("/path/to/my/dir", 0700);
?>

성공하면 TRUE를, 실패하면 FALSE를 반환합니다.

참고: PHP 5.0.0부터 rmdir()은 특정 URL 래핑 프로토콜과 함께 사용할 수도 있습니다. rmdir()이 지원하는 URL 캡슐화 프로토콜 목록은 부록 N을 참조하세요.

참고: PHP 5.0.0에 컨텍스트 지원이 추가되었습니다. 컨텍스트에 대한 설명은 CLX, 스트림 함수 참조를 참조하세요.

참고: 재귀 매개변수는 PHP 5.0.0에 추가되었습니다.

참고: 안전 모드가 활성화되면 PHP는 조작 중인 디렉터리가 실행 중인 스크립트와 동일한 UID(소유자)를 가지고 있는지 확인합니다.

위 내용은 PHP5 매뉴얼에 나오는 설명 내용입니다. 즉, mkdir('./test',0777)과 같은 폴더를 생성하시면 됩니다. 그러나 다중 레벨 디렉토리를 재귀적으로 생성하는 방법은 무엇입니까?

방법은 다음과 같습니다.

1. PHP5의 디렉토리 생성 함수 mkdir은 recursive를 true로 설정하면 재귀적으로 디렉토리를 생성하는 목적을 달성할 수 있지만 PHP4에서는 작동하지 않습니다.

2. 다중 레벨 디렉터리를 생성하는 자신만의 재귀 메서드를 작성하세요.

여기에서는 두 번째 방법에 대해 설명하겠습니다. 다음과 같습니다.

첫 번째(mkdirs를 사용하여 다중 레벨 상위 생성)

function mkdirs($dir, $mode = 0777)
{    
if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE;    
if (!mkdirs(dirname($dir), $mode)) return FALSE;    
return @mkdir($dir, $mode);
}

설명:
1. 먼저 mkdir( )에 대해 간략하게 설명하겠습니다. 및 mkdirs(), is_dir 및 dirname():

mkdir()은 기존 디렉터리에만 폴더를 만들 수 있습니다(즉, 상위 디렉터리가 있어야 함).

mkdirs()는 존재하지 않는 디렉터리에 폴더를 만들 수 있습니다. 예: a//b, 다중 레벨 디렉토리를 생성할 수 있습니다.

dirname()은 반환된 경로의 디렉터리 부분입니다.

is_dir()은 주어진 파일 이름이 유효한 디렉터리인지 확인하는 데 사용됩니다. 존재하지 않는 경우(또는 폴더가 아닌 경우) 생성을 시도합니다. 물론 상위가 존재하지 않을 수 있으며 mkdir이 성공적으로 생성되지 않지만 오류를 보고하지 않으므로 @를 사용하여 생성되지 않도록 하세요. -치명적인 오류.

(2) 전달된 매개변수 중 조건을 충족하는 것이 없으면 두 번째 if 문을 입력합니다. 먼저 경로의 디렉터리 부분을 가져옵니다. 물론 존재하지 않는 다중 수준 상위일 수도 있으므로 mkdirs입니다. ()는 먼저 상위 디렉토리를 생성하는 데 사용됩니다. 성공하면(실패하면 FALSE를 반환) mkdir을 사용하여 최종 디렉토리를 생성합니다.

알겠습니다. 위의 옵션이 첫 번째 옵션입니다.

두 번째(참고: 이 솔루션은 상당히 간소화되었으며 매우 좋은 솔루션이므로 사용하는 것이 좋습니다.)

function create_folders($dir){
       return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777));
 }

설명: 1. 일반 프로세스: 경로를 가져온 후 먼저 유효한 파일 디렉터리인지 확인합니다. , 그렇다면 프로그램을 반환하고 종료하십시오. 그렇지 않은 경우(여기서 OR이 선택 조건으로 사용되기 때문에, 즉 조건 중 하나가 충족되는 한) 자체적으로 재귀적으로 호출되며 전달된 경로에 디렉터리가 하나 줄어듭니다. 이런 식으로 먼저 상위 레벨의 상위 디렉토리로 돌아가서 mkdir을 사용하여 다음 레벨을 생성합니다.

좋아요, 위는 PHP를 사용하여 폴더(및 다단계 폴더)를 만드는 방법입니다. ^_^

요약:

1. PHP5와 함께 제공되는 mkdir에서 새로운 매개변수 recursive를 사용합니다. recursive를 true로 설정하면 디렉토리를 재귀적으로 생성하는 목적을 달성할 수 있지만 PHP4에서는 작동하지 않습니다.

2. 직접 작성한 방법에서는 mkdirs를 사용하여 다중 레벨 상위 디렉토리를 만듭니다

3. 그래도 mkdir을 사용하여 매우 영리하게 만듭니다.

추천 관련 기사 튜토리얼:

php 튜토리얼

위 내용은 PHP에서 mkdir 사용 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제