2014-06-11 2 views
4

나는 날짜와 현재 시간이라는 제목의 디렉토리를 만들려하고 실험하고 싶었다. php time() 함수를 사용할 수는 있지만 읽는 것은 어렵다. 06-11-2014 11:37:04 정도의 디렉토리를 만들 수없는 이유는 무엇입니까? php mkdir 함수는이 형식을 사용하려고 할 때 잘못된 인수를 제공합니다.PHP mkdir - 왜 이것이 잘못된 인수입니까?

PHP 코드

<?php 
$newdate = date("m-d-Y H:i:s"); 

mkdir($newdate, 0755, true); 

?> 
+4

'077'때문에 '0777'; 당신은'7'을 잊었습니다. 더 나은 것은'0755 '를 사용하면 더 안전합니다. –

+0

@ Fred-ii- Hm 0777 또는 0755가없는 행운, 여전히 잘못된 인수가 표시됩니다. – wheatfairies

+2

대부분의 파일 시스템에서는 파일 또는 디렉토리 이름에 콜론을 사용할 수 없습니다. – mifi79

답변

8

날짜의 콜론이 잘못되었습니다. 가장 좋은 방법은 다음과 같은 형식을 사용하는 것입니다.

$newdate = date("m-d-Y H_i_s"); 
+0

그게 전부 였어! 내가 할 수있을 때 나는 당신의 대답을 받아 들일 것입니다. 내 파일 시스템은 디렉토리 제목에 콜론을 사용할 수 없습니다. – wheatfairies

+0

이것은 리눅스 파일 명명 규칙 때문입니다. –

+2

Sidenote : 내 (호스트 된) 서버가 Linux이고 콜론을 사용하면 문제가 없습니다. 내가 제어 할 수없는 설정이기도해야합니다. –

3

이 있습니다

mkdir($newdate, 077, true); 

를하지만해야합니다 :

mkdir($newdate, 0777, true); 

을하지만 그 777 권한을 보안 위험 말했다. 대신 775 또는 755를 사용하는 것이 더 낫다 :

mkdir($newdate, 0755, true); 

문제 777과 권한은 읽기, 쓰기 또는 디렉토리에 아무것도 실행할 수있는 시스템에 액세스 할 수있는 사람의 100 %를 의미합니다. 그것은 두통에 대한 문을 열어 두는 것입니다. 해킹 당하거나 실수로 두통을 일으키는 경우가 있습니다. 실수로 경로를 잘못 입력하면 &은 닦아서는 안되는 데이터를 삭제합니다.

파일 & 777으로 세계의 모든 사람에게 디렉토리 권한을 열어서는 안됩니다.

편집 : 원래 포스터는 수정 된 권한으로도 여전히 문제가 발생한다고 말합니다. 나는 문제가 그들 :의 파일이나 디렉토리 이름이 단지와 같은 일부 시스템에 질식 것입니다 생각

$newdate = date("m-d-Y_H-i-s"); 
mkdir($newdate, 0755, true); 

: 여기에

$newdate = date("m-d-Y H:i:s"); 
mkdir($newdate, 0777, true); 

: 내 유일한 제안이의 코드를 변경하는 것입니다 Mac OS X 또한 날짜와 시간 사이에 밑줄 (_)을 붙였습니다.

+0

나는 그것에 행운을 얻지 못했지만 지금은 0755를 확실히 사용할 것입니다. 다른 아이디어? – wheatfairies

+1

Jake, "comments"를 사용하는 또 다른 이유가 있습니다. –

+1

그게, 파일 이름을 지정하면 디렉토리 이름에 콜론을 사용할 수 없었습니다. – wheatfairies