php - 文件写入无法从终端运行,但可以从浏览器运行

标签 php unix terminal

我有一个php脚本,其中包含一些文本文件写入操作。现在,如果我从浏览器执行脚本,通过使用它的 url 访问它,它工作正常并且文件写入完美。但是,当我使用命令从终端运行相同的脚本时,脚本会运行,但不会执行文件操作。我不确定为什么会发生这种情况。我知道这可能是一件愚蠢的事情,或者我丢失了一些 key 或任何东西,但目前无法弄清楚。

这是我正在使用的命令

/path/to/php -f /path/to/file

这是写入文本文件的代码:

$myFile = "filename.txt";
$fh = fopen($myFile, 'a+') or die("can't open file");
$str = "file content here";
fwrite($fh, $str);
fclose($fh);

感谢您的帮助。

最佳答案

这可能使用不同的路径。例如,当从终端运行时,它将在运行命令时所在的目录中查找“filename.txt”,而当从浏览器运行时,它将在与 PHP 文件相同的目录中查找。

要解决此问题,请使用您正在访问的文件的完整路径,而不仅仅是文件名。

关于php - 文件写入无法从终端运行,但可以从浏览器运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10949004/

相关文章:

php - PDO 和 PHP。未定义索引,但已定义

linux - 如何使用shell脚本按字母顺序将一行插入到文件中

bash - 使用 GNU screen 时如何避免 emacs(或 vi)在关闭后留在 screen 上?

php - 解释 php 中 curl 过程背后的逻辑

php - 如何在 PHP 中将 UTF8 转换为 LITHUANIAN_CI_AS?

php - 如何在代码点火器中为 form_multiselect 使用高度属性?

terminal - 发现错误 : No pubspec. yaml 文件。在MAC中

c - 在 fifo 上打开系统调用不阻塞?

linux - 跳过不需要编译的项目的配置

macos - chef-solo 停止多次询问服务器密码