Wp 는 이 폴더에서는 호스트가토르 표시되어도 스파넬 을 브루호스트 설치자는 것으로 만들 수 없습니다.
그래서 내 테마 코드를 추가할 필요가 있는지 확인하는 폴더를 만들고, 그렇지 않은 경우에는.
다음은 누각되었습니다 블렌드합니다. # 39, & # 39 recursive& 전달하십시오 합니다. 제 3 의 인수 (부울입니다 true) 로 플래깅 mkdir 매입옵션 다음과 같습니다.
mkdir('path/to/directory', 0755, true);
뭔가 좀 더 보편적인 때문에 구글 들려온다. 이 질문은 동시에 보다 구체적인 세부 사항이 제목이 더 보편적인.
/**
* recursively create a long directory path
*/
function createPath($path) {
if (is_dir($path)) return true;
$prev_path = substr($path, 0, strrpos($path, '/', -2) + 1 );
$return = createPath($prev_path);
return ($return && is_writable($prev_path)) ? mkdir($path) : false;
}
이렇게 하면, 아마도 긴 사슬로 창조되지 않은 경로를 통해 시행하십시오 계속해줘 디렉터리 및 it gets up one 디렉터리입니다 때까지 기존 디렉터리입니다. 그런 다음, 계속해서 it& 거역한다면 만드시겠습니까 디렉터리입니다 해당 디렉토리에 있는 모든 디렉터리용 인도되니 # 39 의 창조하. 이 경우 true 되돌려줍니다 성공했습니다.
그래서 그냥 실패할 경우 개선될 수 있도록 함으로써 중지 수준을 넘어서는 등 사용자 폴더 또는 무언가 의해 권한만으로.
다음과 같은 보조 기능을 어떨까요?
function makeDir($path)
{
$ret = mkdir($path); // use @mkdir if you want to suppress warnings/errors
return $ret === true || is_dir($path);
}
이 경우 반환되므로 '진정한' 및 '거짓' 디렉토리에는 생성되었습니다 또는 이미 경우 couldn& 디렉토리에는 # 39, t 생성할 수 없습니다.
더 나은 대안 a 로만스였나 (shouldn& # 39, t 부여하지 개의경고):
function makeDir($path)
{
return is_dir($path) || mkdir($path);
}
소스임을 참조 -
function wp_mkdir_p( $target ) {
$wrapper = null;
// strip the protocol
if( wp_is_stream( $target ) ) {
list( $wrapper, $target ) = explode( '://', $target, 2 );
}
// from php.net/mkdir user contributed notes
$target = str_replace( '//', '/', $target );
// put the wrapper back on the target
if( $wrapper !== null ) {
$target = $wrapper . '://' . $target;
}
// safe mode fails with a trailing slash under certain PHP versions.
$target = rtrim($target, '/'); // Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
if ( empty($target) )
$target = '/';
if ( file_exists( $target ) )
return @is_dir( $target );
// We need to find the permissions of the parent folder that exists and inherit that.
$target_parent = dirname( $target );
while ( '.' != $target_parent && ! is_dir( $target_parent ) ) {
$target_parent = dirname( $target_parent );
}
// Get the permission bits.
if ( $stat = @stat( $target_parent ) ) {
$dir_perms = $stat['mode'] & 0007777;
} else {
$dir_perms = 0777;
}
if ( @mkdir( $target, $dir_perms, true ) ) {
// If a umask is set that modifies $dir_perms, we'll have to re-set the $dir_perms correctly with chmod()
if ( $dir_perms != ( $dir_perms & ~umask() ) ) {
$folder_parts = explode( '/', substr( $target, strlen( $target_parent ) + 1 ) );
for ( $i = 1; $i <= count( $folder_parts ); $i++ ) {
@chmod( $target_parent . '/' . implode( '/', array_slice( $folder_parts, 0, $i ) ), $dir_perms );
}
}
return true;
}
return false;
}
똑같은 데릭쉐퍼드와 로그인시키는 위한 사이트. 내가 만드는 데 필요한 수신기마다 디렉터리입니다 두 변수. 다른 폴더로 디렉토리에는 달러 가 주요 사용자 라이센스에서 함께 여러 하위 폴더 만들고 싶었다.
include_once("../include/session.php");
$lnum = $session->lnum; //Users license number from sessions
$directory = uploaded_labels; // Name of directory that folder is being created in
if (!file_exists($directory."/".$lnum)) {
mkdir($directory."/".$lnum, 0777, true);
}
'VS', '문제를 피하기 위해' file_exists 스케쳐내 is_dir here 내가 제시할 것이라고 볼 수 있습니다
이 또한 존재하지 않는 경우 디렉토리에는 전화했는데 미디어만을 tcpg 디렉토리에는 . 잘 사용하지 않기 때문에 이 같은 이름의 파일이 있습니다.
/* Creates the directory if it does not exist */
$path_to_directory = 'path/to/directory';
if (!file_exists($path_to_directory) && !is_dir($path_to_directory)) {
mkdir($path_to_directory, 0777, true);
}
및 심판을 받은: http://php.net/manual/en/function.mkdir.php
>. 부울 mkdir (문자열이어야 경로명입니다 [, int = $ 모드이면 0777 [, 부울 recursive = $ $ >. 거짓값 [, 리소스에는 $ 컨텍스트로]]])
수작업식 밝히고 있는 유일한 필수 파라메트가 '$ 경로명입니다'!
그래서 우리는 코드 작업을 쉽게 할 수 있습니다.
<?php
error_reporting(0);
if(!mkdir('wp-content/uploads')){
// todo
}
?>
우리는 모든 매개변수입니다 don& # 39, t 전달해야 있는지, 또는 심지어 전달하십시오 모드 매개변수입니다 필요한 경우는 폴더가 있습니다. 원인은 다음과 같습니다.
이것은 단지 더 좋은 최적의 솔루션을 또는 다른 방법으로 이 질문 및 자랑합니까 들여다 볼 수 없습니다.
우리는 항상 우리 # 39, ve 기록되었으므로 I& 모듈화 코드와 같은 체크 같습니다. 우리는 우리가 먼저 체크 디렉토리에는 없을 경우 디렉토리에는 만듭다 디렉터리입니다.
$boolDirPresents = $this->CheckDir($DirectoryName);
if (!$boolDirPresents) {
$boolCreateDirectory = $this->CreateDirectory($DirectoryName);
if ($boolCreateDirectory) {
echo "Created successfully";
}
}
function CheckDir($DirName) {
if (file_exists($DirName)) {
echo "Dir Exists<br>";
return true;
} else {
echo "Dir Not Absent<br>";
return false;
}
}
function CreateDirectory($DirName) {
if (mkdir($DirName, 0777)) {
return true;
} else {
return false;
}
}
먼저 확인해야 할 경우 디렉토리가 (& # 39, path_to_directory& # 39;) '' file_exists
그러면 '디렉터리입니다 mkdir (path_to_directory)' 을 만들기
mkdir( string $pathname [, int $mode = 0777 [, bool $recursive = FALSE [, resource $context ]]] ) : bool
자세한 내용 mkdir () 이
전체 코드 위치:
$structure = './depth1/depth2/depth3/';
if (!file_exists($structure)) {
mkdir($structure);
}