2013-12-14 35 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)。 –

相关问题