file_put_contents无法在命令行中使用?

时间:2013-07-24 16:50:03

标签: php shell

以下是PHP文件的内容:

<? 
file_put_contents('test.txt', 'stuff');
echo 'complete';
?>

我称之为test.php,它位于/mnt。它有777权限。现在我进入SSH,并执行:sudo /usr/bin/php /mnt/test.php。我收到了脚本底部的complete消息。现在,我进入/mnt。 Text.txt不存在。是什么给了什么?

3 个答案:

答案 0 :(得分:2)

正确的代码是:

file_put_contents(__DIR__.'/test.txt', 'stuff');
echo 'complete';

否则,php将文件写入“当前工作目录”,而不是放在

的位置

答案 1 :(得分:1)

您尚未指定路径,因此您将stuff放入当前工作目录中的text.txt。在运行cd之前,这将是您sudo的目录(或新shell的默认目录),而不是PHP脚本所在的目录。

答案 2 :(得分:0)

更改代码以包含绝对路径,如下所示:

file_put_contents('/mnt/test.txt', 'stuff');

其他,PHP只会将文件写入工作目录(通常是/home/user