2015-03-18 97 views
-2

我在我的index.php页面中有这样的代码,这很简单,但我是一个PHP noob。我只希望能够编写,每当有人访问该页面时,将这一行代码追加到.txt文件中,但我无法使其工作。 我甚至没有收到错误信息。 服务器正在运行一个Pi。PHP - 如何写入文件?

<?php 

$fileDir = fopen('/mnt/data_8GB/webCrawlLog.txt', 'a'); 
    if ($fileDir === NULL) echo "ERROR"; 
    else {fwrite($fileDir, date('H:i:s:'));} 
fclose($fileDir); 

?> 

TL:DR 只是想写信给使用PHP一个.txt,也许有PHP创建一个文件,如果没有文件存在。

+2

在您打开PHP标记 (例如'<?php error_reporting(E_ALL);)后立即向文件顶部添加错误报告。 ini_set('display_errors',1);'然后你的代码的其余部分,看看它是否产生任何东西。还要确保文件夹有写入权限。 – 2015-03-18 22:05:00

+1

''file_put_contents('/ mnt/data_8GB/webCrawlLog.txt',date('H:i:s:')。PHP_EOL,FILE_APPEND);' – adeneo 2015-03-18 22:06:27

+1

'fopen'返回成功时的文件句柄,如果是则返回boolean false失败;您正在使用'==='与返回值进行严格比较。所以如果'fopen'失败了,你不会进入ERROR行,但是你仍然不能写。 – andrewsi 2015-03-18 22:06:31

回答

0

您的PHP代码有效,请尝试写入/tmp,您将看到它填满。

我想你的PHP是由Apache运行?这意味着用户apache正在运行(通常为www-data)将需要对文件夹的写入权限。

你真正需要写访问整个路径也运行

namei -l /mnt/data_8GB/ 

应显示在这两个文件夹的权限,双方将需要www数据写入访问无论是作为用户,组或世界。虽然小组是可取的。

+0

尝试写入/ tmp,同样的问题。 运行对虾-l的/ mnt/data_8GB /给出: drwxr-XR-X根根/ drwxr-XR-X根根MNT drwxr-XR-X屁屁data_8GB – 2015-03-19 15:39:05

+0

好了,我改变了我的代码bit: <?php $ fileDir = fopen('/ tmp/webCrawlLog.txt','a'); \t if($ fileDir == NULL)echo“ERROR”; \t else {fwrite($ fileDir,“Day Crawled:”。date('Y:m:d')。“”。“Time Crawled:”。date('H:i:s')。“”。“ IP:“。$ _SERVER ['REMOTE_ADDR']。”\ n“);} fclose($ fileDir); ?> 这工作正常。它创建一个文件,可以附加到它,给我的信息,很好。唯一的问题是,我仍然无法保存到我的/ mnt/data_8GB – 2015-03-19 16:22:28

+0

根是所有者和组的两者。 Chown www-data这两个文件夹 – exussum 2015-03-19 18:14:06