이 글은 주로 PHP의 재귀 함수를 사용하여 다단계 디렉토리를 만드는 방법을 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.
자세한 내용은 다음과 같습니다.
function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ //查看目录是否已经存在或尝试创建,加一个@抑制符号是因为第一次创建失败,会报一个“父目录不存在”的警告。 echo $dir."创建成功<br>"; //输出创建成功的目录 }else{ $dirArr=explode('/',$dir); //当子目录没创建成功时,试图创建父目录,用explode()函数以'/'分隔符切割成一个数组 array_pop($dirArr); //将数组中的最后一项(即子目录)弹出来, $newDir=implode('/',$dirArr); //重新组合成一个文件夹字符串 Directory($newDir); //试图创建父目录 if(@mkdir($dir,0777)){ echo $dir."创建成功<br>"; } //再次试图创建子目录,成功输出目录名 } } Directory("A/B/C/D/E/F");
출력 결과는 그림과 같습니다.
하지만 매뉴얼에 있는 파일 기능을 보면 너무 번거롭다는 것을 알 수 있습니다. dirname() 함수, 그 중 프로토타입은 다음과 같습니다:
string dirname ( string $path )
파일의 전체 경로가 포함된 문자열이 주어지면 이 함수는 디렉터리 이름을 반환합니다. 파일 이름을 제거한 후.
Windows에서는 슬래시(/)와 백슬래시()를 모두 디렉터리 구분 기호로 사용할 수 있습니다. 다른 경우에는 슬래시(/)입니다.
약간 최적화 가능:
function Directory($dir){ if(is_dir($dir) || @mkdir($dir,0777)){ echo $dir."创建成功<br>"; }else{ Directory(dirname($dir)); if(@mkdir($dir,0777)){ echo $dir."创建成功<br>"; } } }
효과는 동일합니다.
나중에 인터넷에서 답변을 검색한 결과 매우 통찰력 있는 답변을 찾았습니다.:
function Directory( $dir ){ return is_dir ( $dir ) or Directory(dirname( $dir )) and mkdir ( $dir , 0777); }
이제 전체 기능을 설명하겠습니다.
먼저 PHP에서 논리 연산자의 우선 순위를 소개합니다: && > ; || > 및 > dir )) 및 mkdir ( $dir , 0777))
먼저 대상 디렉토리가 존재하는지 확인하십시오. 또는 단락 특성에 따라 다음 전체가 짧아집니다. -회로가 실행되고 대상 디렉터리가 없으면 다음 함수 본문을 실행합니다: Directory(dirname( $dir )) 및 mkdir ( $dir , 0777)
재귀를 먼저 수행하는 목적 : 먼저 재귀를 실행하여 상위 디렉터리(dirname($dir))가 생성되었는지 확인하므로 상위 디렉터리를 생성할 수 없을 때 후속 mkdir() 함수가 경고를 발행하지 않습니다. 하위 디렉터리를 만들 때 발견되었습니다. 재귀 깊이를 입력한 후, 가장 깊은 루트 디렉터리가 존재하는지 확인한 후, 루트 디렉터리부터 아래로 순서대로 디렉터리를 생성합니다.
마지막으로, 취업을 원하는 사람들에게 온라인으로 가서 대기업의 면접 질문을 찾아보라고 제안합니다. 결국, 이들의 시험은 더 포괄적이고 심층적이기 때문에 지식을 배울 때도 공부해야 합니다. 너무 야심차고 과소평가되기 쉽기 때문에 정상적으로 사용하기 전에 처음에 여러 번 최적화를 했습니다. 이것은 PHP에서 다단계 디렉토리를 재귀적으로 생성하는 것에 대한 인터뷰 질문입니다. 앞으로 편집자는 몇 가지 흥미로운 인터뷰 질문을 찾아 여러분과 공유할 것입니다.
요약
: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
관련 권장사항: PHP에서 각각 및 목록 기능을 사용하는 방법
PHP 지리적 위치 검색 및 거리 계산위 내용은 PHP는 재귀 함수를 사용하여 다중 레벨 디렉토리를 생성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.

PHP의 자동로드는 필요할 때 클래스 파일을 자동으로로드하여 메모리 사용을 줄이고 코드 구성을 향상시켜 성능을 향상시킵니다. 모범 사례에는 PSR-4 사용 및 효과적으로 코드 구성이 포함됩니다.

PHP 스트림은 일관된 API를 통해 파일, 네트워크 소켓 및 압축 형식과 같은 자원의 처리를 통합하여 복잡성을 추상화하고 코드 유연성 및 효율성을 향상시킵니다.

이 기사에서는 PHP의 파일 업로드 크기 관리, 기본 제한 2MB 및 php.ini 설정을 수정하여이를 늘리는 방법에 중점을 둔 파일 업로드 크기 관리에 대해 설명합니다.

이 기사에서는 PHP 7.1에 도입 된 PHP의 무효 유형에 대해 설명하여 변수 또는 매개 변수가 지정된 유형 또는 널이 될 수 있습니다. 개선 된 가독성, 유형 안전 및 명시 적 의도와 같은 이점을 강조하고 선언하는 방법을 설명합니다.

이 기사에서는 Unset ()와 Unlink () 기능의 차이점에 대해 설명합니다. 프로그래밍의 목적 및 사용 사례에 중점을 둡니다. unset ()는 메모리에서 변수를 제거하고 Unlink ()는 파일 시스템에서 파일을 삭제합니다. 둘 다 Effec에 중요합니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는
