作为应用程序日志记录的一部分,我试图打开本地文件,如果该文件尚不存在,要创建一个新文件。下面是我有:PHP fopen()不创建文件,如果它不存在
$path = '/home/www/phpapp/logs/myawesome_logfile.txt';
$f = (file_exists($path))? fopen($path, "a+") : fopen($path, "w+");
fwrite($f, $msg);
fclose($f);
chmod($path, 0777);
我再次检查,而/logs
目录chmod为0777,而我还跟它chown'ing到Apache的额外步骤:apache的好措施。尽管如此,当脚本打开文件时,它给了我一个警告,即文件不存在并且弹出。没有文件被创建。
我是否需要禁止fopen()
警告才能让它创建文件?
注意:如果'a +'无论出于何种原因追上我,我都会用'file_exists()'添加逻辑。 – 2011-03-01 21:10:28
你真的想让你的路径从根开始吗?这不会是你的应用的根目录,那将是你系统的根目录。 – 2011-03-01 21:11:14
为什么你认为错误抑制会帮助你打开一个文件? – 2011-03-01 21:28:57