2015-02-10 98 views
1

无法解决如何通过PHP编写基本文本文件。现在已经尝试了一个星期,但下面的例子是我一直在尝试的一些基本代码。我通过SSH使用root登录到在Debian Wheesy上运行PHP 5.4的beagle bone black。如何将数据写入到php中的文本文件中

当我将浏览器指向页面时,它显示hello world类型并且不显示错误,但是当我去尝试找到文件时,我找不到(找到/ -name data.txt)。测试PHP文件位于var/www 我确定这是基本的,我失踪了...任何洞察力将不胜感激。

<html> 
<head> 
<title>PHP Test</title> 
</head> 
<body> 
<?php echo '<p>Hello World4</p>'; 

$fp = fopen('data.txt', 'w'); 
fwrite($fp, '1'); 
fwrite($fp, '23'); 
fclose($fp); 

// the content of 'data.txt' is now 123 and not 23! 

echo '<p>Hello World Again</p>'; 

?> 
</body> 
</html> 
+0

您是否尝试过file_put_contents?我更喜欢f函数。我通常使用绝对路径,这也可能是你的问题。 – chris85 2015-02-10 01:44:44

+0

欢迎来到Stack Overflow!请[编辑]您的问题,以澄清您是否无法找到该文件或理解它的内容为何如此。感谢您提高问题的参考价值! – 2015-02-10 01:50:17

+0

chris85,是的,我也尝试了几个file_put_contents示例代码。 – graceyj20 2015-02-10 01:57:40

回答

4

你说你使用root登录SSH?我会猜测它可能是data.txt文件或父文件夹的权限问题。尝试建立在同一个目录下的文件作为PHP文件通过SSH(你在帖子发布的内容)是这样的:

touch data.txt 
sudo chown www-data:www-data data.txt 

这应该使该文件属于默认的Apache用户(WWW的数据)和默认的apache组(www-data)。

+0

这样做!谢谢!有没有什么办法可以在将来避免这个问题,或者我应该在每次需要创建新文件时重置权限? – graceyj20 2015-02-10 02:05:58

+0

就我个人而言,我会创建一个具有正确权限的文件夹,并执行您在该文件夹中编辑的所有文件。因此,如果您使用权限777或拥有者www-data:www-data在您的服务器上创建文件/目录,然后将所有可编辑文件放入其中,则您不必担心权限。 – Jonathan 2015-02-10 02:07:51

+0

非常感谢乔纳森,我做了一个chmod 777子文件夹,它现在在子文件夹中创建文件,而不必更改每个特定新文件的权限。完善! – graceyj20 2015-02-10 02:30:58