2013-12-14 66 views
10

我嘗試創建文件並動態地寫入內容。以下是我的代碼。如果不存在,則創建一個文件

$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"); 

進行測試,如果你可以有或沒有創建一個文件。

如果您無法創建文件,那可能是因爲該目錄不可由Web服務器用戶(通常爲「www」或類似文件)寫入。

對要創建文件的文件夾執行chmod 777 folder並重試。

它工作嗎?

+0

其創建的內部文件夾不在根文件夾....感謝 – shyamkarthick

+1

再次閱讀答案。我沒有說任何有關根文件夾的信息。假設你有一個像「bob」這樣的用戶名。 Web服務器以完全不同的用戶身份運行(比如說「www」)。 「www」不能寫「bob」的文件夾,除非:1)「www」被添加到「bob」的組中,並且該文件夾至少有775個權限。 2)您將文件夾的所有者從「bob」更改爲「www」(使用「chown」)。 3)該文件夾可由任何用戶寫入(它具有777個權限,您可以使用'chmod'來更改它們)。 –

+2

永遠不要將您的文件夾或文件權限設置爲777.有關更多信息,請參閱[本文](http://superuser.com/a/273533/157802)。 –

相關問題