2016-10-08 7 views
2

특정 디렉토리에 파일을 어떻게 만들 수 있습니까?
php 특정 디렉토리에 파일을 만드는 방법

$username = $_POST["username"]; 
 

 
$filedir = "./u/".$username; 
 

 
mkdir($filedir); 
 

 
$folder = $filedir; 
 
chmod($filedir, 0777); 
 

 
$createfile = fopen($_SERVER['DOCUMENT_ROOT'] . '/path/filename.php');

가 나는 또한 fopen을 시도했지만 문제가 해결되지 않았다 :(내가 IT를 가지고

! :

이 순간에 내 코드입니다 !

$createfile = fopen('./u/'.$username.'/'.$username.'.php', 'x');

모든 도움 주셔서 감사합니다 :) 정말로 감사드립니다.

+1

어떻게 작동하지 않습니까? 어떤 오류가 있습니까? 도움이 필요하면 조금 더 구체적이어야합니다. –

+1

전체 경로를 사용해 보셨습니까? like "/var/www/your_domain_path/u/" .$username; – tanaydin

+0

@CharlotteDunois 잘 모르겠다. 서버를 다시 시작한 다음 고정 된 것이 있는지 확인하십시오. – meme

답변

1

모드 필수 입력란입니다. 파일/스트림에 필요한 액세스 유형을 지정합니다.

fopen(filename,mode) 


$createfile = fopen($_SERVER['DOCUMENT_ROOT'] . '/path/filename.php',"r"); // read only 

가능한 값 : (. 읽기/쓰기 파일의 시작 부분에 시작)

  • "R"
  • "R +"(. 읽기 전용 파일의 시작 부분에 시작)
  • "w"(쓰기 전용 엽니 및 파일의 내용을 지 웁니다. 또는 존재하지 않는 경우 새 파일 생성)
  • "w +"(읽기/쓰기 엽니 및 파일의 내용을 지 웁니다.을; 또는를 만듭니다. 새 파일이 존재하지 않으면
  • "a"(쓰기 전용. 열고 파일의 끝에 기록 또는 파일의 끝)
  • "를 작성하여 존재하지 않는 경우 새 파일)
  • 의"+ "(읽기/쓰기. 보존 파일의 컨텐츠를 작성하는 X "(쓰기 전용.. FALSE 새 파일을 돌려줍니다 작성하고 오류가 파일이 이미 존재하는 경우)
  • "X + "(읽기/쓰기.. 새 파일을 작성 FALSE를 반환하고 오류가 파일이 이미 존재하는 경우)
0

이러한 기능을 시도해 볼 수 있습니다. 하나는 재귀 적으로 폴더 경로를 만들고 다른 하나는 빈 파일을 만듭니다. 지정된 경로에서. 모든 도움의 사람 : 정말 감사에 대한

$createfile = fopen('./u/'.$username.'/'.$username.'.php', 'x');

감사 :

/* recursively create folder path */ 
function createdir($path=null, $perm=0644) { 
    if(!file_exists($path)) { 
     createdir(dirname($path)); 
     mkdir($path, $perm, true); 
     clearstatcache(); 
    } 
} 

/* create an empty file ensuring that path is constructed */ 
function createfile($path=false, $filename=false){ 
    if($path && $filename){ 
     createdir($path); 
     file_put_contents($path . DIRECTORY_SEPARATOR . $filename, ''); 
     return true; 
    } 
    return false; 
} 


$dir=$_SERVER['DOCUMENT_ROOT'] . '/path/to/dir'; 
$filename='geronimo.txt'; 

$result=call_user_func('createfile', $dir, $filename); 
+0

왜'call_user_func'를 쓸지 모르겠다. –

+0

개인적인 취향의 문제 야. – RamRaider

1

답변이 있었다.

관련 문제