我以下的答案!
所以我有一个PHP脚本,可以通过网络完美运行。我想在运行Web主机的服务器上的计划任务上进行设置。它是一个Windows 2008 R2服务器。我似乎运行正常减去它不会产生输出文件的事实。我需要拥有完整的路径名吗? Ex C:\ logs ....还是会在下面工作?我想保持脚本在Web和命令行中都能正常工作。
$File3 = "" . $log_dir . "/" . date('m-d-Y') . ".txt";
$Handle3 = fopen($File3, 'a+');
$Data3 = "blah";
fwrite($Handle3, $Data3);
更多信息:
以下是日志文件中的错误:
fwrite()要求参数1为资源,在第686行的C:\ Websites \ wordpress \ win \ import.php中给出布尔值
PHP警告:file_get_contents(bins / bins-10-09-2013.txt):无法打开流:第692行的C:\ Websites \ wordpress \ win \ import.php中没有此类文件或目录
PHP警告:fwrite()要求参数1为资源,在第699行的C:\ Websites \ wordpress \ win \ import.php中给出布尔值
PHP警告:fclose()要求参数1为资源,在第709行的C:\ Websites \ wordpress \ win \ import.php中给出布尔值
WORKING !!嗯,这就是我的用途,似乎工作正常。
$File = "" . $uploads_dir . "/import-" . date('m-d-Y-g-ia') . ".txt";
$Handle = fopen($file1, 'a+');
if ( $Handle === false ) {
$File = "C:\Websites\wordpress\win\\".$uploads_dir."\import-" . date('m-d-Y-g-ia') . ".txt";
$Handle = fopen($File, 'a+');
}
这样我就可以通过网络和计划任务通过Windows使用php脚本。
答案 0 :(得分:0)
我从来没有使用完整的网址来进行fopen或fwrite。这些是我首先要看的东西:
答案 1 :(得分:0)
似乎fopen无法打开文件。确保文件成功打开:
$Handle3 = fopen($File3, 'a+');
if( $Handle3 === false ) echo 'Unable to open file';
如果失败,请一次检查以下项目:
"/"
,"\"
进行检查。fopen
之前更改目录进行检查:chdir('path\to\php\script')
如果问题与路径有关,那么两种方法都可以使用:
// First try with the path that works from web
$File3 = "" . $log_dir . "/" . date('m-d-Y') . ".txt";
$Handle3 = fopen( $File3, 'a+' );
if( $Handle3 === false )
{
// It failed so may be scheduled task invoked the script
// So use the path that works in invoked by scheduled task
$File3 = "path\that\works\from\command\line";
$Handle3 = fopen( $File3 ,'a+' );
}
if( $Handle3 === false )
{
echo 'Failed to open file';
exit;
}
else
{
// What ever
}