2

我正在尝试使用 file_put_ 内容将文件写入我的 cron 脚本所在目录的子文件夹。但是,我不断收到警告“无法打开流:没有这样的文件或目录。” 我有这个目录结构:

httpdocs/scripts/fileDirectory

cron 脚本位于脚本文件夹中。我用 cron 命令调用它:

php httpdocs/scripts/cron_writeFile.php

在 cron_writeFile 文件中,我首先尝试了:

file_put_contents('fileDirectory/', $fileName, $fileContents);

当我在浏览器中加载页面时有效,但在 cron 执行时无效。

当我在 cron 中 require_once 一个文件时,我必须将“绝对”路径放入它:

require_once('httpdocs/scripts/requiredFile.php');

所以,我试过了:

file_put_contents('httpdocs/scripts/fileDirectory/', $fileName, $fileContents);

没运气。我很确定它会到达正确的文件夹,因为警告是:

“警告:file_put_contents(httpdocs/scripts/fileDirectory/4.txt):无法打开流:第 93 行的 /var/www/vhosts/myDomain.com/httpdocs/scripts/cron_writeFile.php 中没有这样的文件或目录"

这两个目录都有写权限。

我正在使用正在运行的 VPS(我知道它很糟糕,我需要升级,但我没有权限)
Parallels Plesk Panel 版本 9.2.1 和 PHP 5.0.4

该文件不存在,每次脚本运行时我都需要一个新文件。
我不确定是否有某种方法可以定义文件路径或我缺少的其他东西。

谢谢你的帮助!

4

1 回答 1

11

如果您使用dirname(__FILE__)请参阅)获取“fileDirectory”目录的绝对路径会怎样?

我猜,如果您fileDirectory是文件所在目录的子目录,那么您的脚本中会出现这样的内容:

file_put_contents(dirname(__FILE__) . '/fileDirectory/' . $fileName, $fileContents);

这样,您就不会依赖相对路径,如果您的脚本不是从“正确”目录启动的,这可能是错误的。

于 2009-07-16T21:41:47.133 回答