使用cron在PHP中编写文件

chr*_*035 2 php cron plesk

我正在尝试使用file_ put_ contents将文件写入我的cron脚本所在目录的子文件夹中.但是,我一直收到警告"无法打开流:没有这样的文件或目录." 我有这个目录结构:

的httpdocs /脚本/文件目录

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

php httpdocs/scripts/cron_writeFile.php
Run Code Online (Sandbox Code Playgroud)

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

file_put_contents('fileDirectory/', $fileName, $fileContents);
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中加载页面时,它可以正常工作,但在cron执行时则不行.

当我在cron中require_once一个文件时,我必须把'绝对'路径放到它:

require_once('httpdocs/scripts/requiredFile.php');
Run Code Online (Sandbox Code Playgroud)

所以,我试过了:

file_put_contents('httpdocs/scripts/fileDirectory/', $fileName, $fileContents);
Run Code Online (Sandbox Code Playgroud)

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

"警告: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

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

谢谢你的帮助!

Pas*_*TIN 11

如果您使用dirname(__FILE__)(请参阅)获取"fileDirectory"目录的绝对路径,该怎么办?

我想,如果您fileDirectory的文件所在的目录中存在以下内容,那么您的脚本中会出现类似的情况:

file_put_contents(dirname(__FILE__) . '/fileDirectory/' . $fileName, $fileContents);
Run Code Online (Sandbox Code Playgroud)

这样,您不依赖于相对路径,如果您的脚本未从"正确"目录启动,则可能是错误的.