2010-07-22 3 views
2

PHP의 mkdir 기능은 다음 서명이 재귀 매개 변수를 사용하여 MKDIR :모드를 무시하지만,

bool mkdir (string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]])

내가 true$pathname$recursive 세트를 지정하는이 함수를 호출하고 싶지만, 내가 좋아 않을 것 $mode 매개 변수를 지정하십시오. 우리는 서버 수준에서 새 파일/디렉토리에 대한 권한을 제어하므로 내 코드에서이를 지정하고 싶지 않습니다.

그럼 효과적으로 무시하고 chmoding이 일어나지 않게하려면 $mode으로 무엇을 전달해야합니까? 나는 길을 찾지 못했습니다.

유일한 해결책은 경로를 깨뜨리고 하나씩 디렉토리를 생성하는 사용자 정의 mkdir 함수를 작성하는 것일까 요?

답변

2

왜 당신은 당신이 $ 재귀 PARAM을 제공하려는 경우 $ 모드 PARAM을 탈출 할 수있는 방법이 없습니다 0777.

+0

댓글이어야합니다. –

+0

내 파일/디렉토리를 0777 –

+0

으로 설정하고 싶지는 않습니다. 이것은 서버가 설정 한 기본 권한을 사용하는 것 같습니다. 'umask'를 잊어 버렸습니다. 건배! –

1

죄송 기본값으로 모드를 설정하지 마십시오. 당신은 변수 모드에서을 store 및 위치를 later-

$mode = 0777; 

mkdir($file_name, $mode, $recursive); 
1

0777 모든 IT를 use can

?

무언가를 놓치지 않는 한, 서명에는 3 개의 선택적 매개 변수가 표시됩니다. 처음 두 $mode$recursive의 기본값은 지정되지 않은 경우 0777false입니다. 명시 적으로 지정해도 동작을 변경해서는 안됩니다.

+0

나는 2 개의 커피가 나를 위해 오늘 일어나기에 충분하지 않다는 것을 추측한다 :) 나쁘게 나는 3 개의 대답을 받아 들일 수 없다. 건배! –

1

0777입니다. 매개 변수를 지정하지 않으면 대신 0777이 사용되므로이를 지정하기 위해 시도하는 것이 바람직하지 않습니다. GNU/리눅스의 mkdir()이 같은 일을 :

매개 변수 모드 사용 권한을 지정

나는이 PHP에 의해 행동이 아니기 때문에 전혀이 문제를 해결 얻을 것이라고 생각하지 않습니다. 프로세스의 umask에 의해 일반적인 방법으로 수정됩니다. 생성 된 디렉토리의 권한은 (모드 & ~ umask & 0777)입니다.

나는 이것이 당신이 전혀 걱정할 필요가있는 것인지 확실하지 않습니다. 그렇다면 가장 좋은 방법은 상위 디렉토리의 권한을 체크 아웃하고 적용하는 것입니다.

+0

나는 두 커피가 오늘 내가 일어나기에 충분하지 않다고 생각한다 :) 나쁜쪽으로 나는 3 개의 대답을 받아 들일 수 없다. 건배! –

관련 문제