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)); }
좋아요, 위는 PHP를 사용하여 폴더(및 다단계 폴더)를 만드는 방법입니다. ^_^
요약:
1. PHP5와 함께 제공되는 mkdir에서 새로운 매개변수 recursive를 사용합니다. recursive를 true로 설정하면 디렉토리를 재귀적으로 생성하는 목적을 달성할 수 있지만 PHP4에서는 작동하지 않습니다.
2. 직접 작성한 방법에서는 mkdirs를 사용하여 다중 레벨 상위 디렉토리를 만듭니다
3. 그래도 mkdir을 사용하여 매우 영리하게 만듭니다.
추천 관련 기사 튜토리얼:
php 튜토리얼위 내용은 PHP에서 mkdir 사용 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!