我正在尝试使用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)
这样,您不依赖于相对路径,如果您的脚本未从"正确"目录启动,则可能是错误的.