2013-12-14 3 views
10

파일을 만들고 동적으로 내용을 쓰려고합니다. 아래는 제 코드입니다.PHP가 없으면 파일을 만듭니다.

$sites = realpath(dirname(__FILE__)).'/'; 
$newfile = $sites.$filnme_epub.".js"; 

if (file_exists($newfile)) { 
    $fh = fopen($newfile, 'a'); 
    fwrite($fh, 'd'); 
} else { 
    echo "sfaf"; 
    $fh = fopen($newfile, 'wb'); 
    fwrite($fh, 'd'); 
} 

fclose($fh); 
chmod($newfile, 0777); 

// echo (is_writable($filnme_epub.".js")) ? 'writable' : 'not writable'; 
echo (is_readable($filnme_epub.".js")) ? 'readable' : 'not readable'; 
die; 

그러나 파일을 만들지 않습니다.

답변을 공유하고 도움을주십시오. 감사! 사용

+0

나는 꽤 똑같은 문제를 안고 있었다. 나는 잘못된 이름으로 파일을 만들려고했다. <$ fname = $ Datetime-> format ('Ymd H : i : s')는 어리 석다. – erwan

답변

12

보십시오 : 당신이 거기 여부 파일을 만들 수 있는지 테스트

$fh = fopen($newfile, 'w') or die("Can't create file"); 

.

파일을 만들 수없는 경우 이는 웹 서버 사용자 (일반적으로 "www"또는 그 비슷한 사용자)가 디렉토리를 쓸 수 없기 때문일 수 있습니다.

파일을 만들려는 폴더에 chmod 777 folder을 입력하고 다시 시도하십시오.

작동합니까?

+0

그 내부 폴더 루트 폴더 .... 안에 만든 감사 – shyamkarthick

+1

대답을 다시 읽어보십시오. 루트 폴더에 대해서는 아무 말도하지 않았습니다. "bob"과 같은 사용자 이름이 있다고 가정 해 봅시다. 웹 서버는 완전히 다른 사용자로 실행됩니다 ("www"라고합시다). "www"가 "bob"의 그룹에 추가되고 폴더의 권한이 적어도 775 개인 경우가 아니라면 "www"는 "bob"의 폴더에 쓸 수 없습니다. 2) 폴더 소유자를 "bob"에서 "www"(chown을 사용)로 변경합니다. 3) 폴더는 모든 사용자가 쓸 수 있습니다 (777 개의 권한이 있으며'chmod'를 사용하여 변경할 수 있습니다). –

+2

폴더 또는 파일 권한을 777로 설정하지 마십시오. 자세한 내용은 [이 게시물] (http://superuser.com/a/273533/157802)를 참조하십시오. –

관련 문제