0

这是一个 PHP 文件的内容:

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

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

4

3 回答 3

6

正确的代码是这样的:

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

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

于 2013-07-24T16:53:21.473 回答
1

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

于 2013-07-24T16:52:53.537 回答
0

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

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

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

于 2013-07-24T16:57:20.820 回答