我在PHP文档中有以下内容,我正在调用cron作业。
if (is_file($docRoot . $row['cron_action_script_path'])) {
system("php " . $docRoot . $row['cron_action_script_path'] . $row['params']);
}
但是,我收到错误Could not open input file: /path/to/file.php?params=1
但是我越过了if语句is_file('/path/to/file.php')
所以看起来在对PHP文档的SHH调用中包含get变量存在问题。
这周围有吗?我需要能够以某种方式动态调用我的参数。
答案 0 :(得分:4)
if (is_file($docRoot . $row['cron_action_script_path'])) {
$_GET['params'] = $row['params'];
include $docRoot . $row['cron_action_script_path'];
}
答案 1 :(得分:3)
您正在调用php CLI并尝试使用QUERY STRING
数据,这是特定于Web服务器的。您需要修改脚本以接受参数或使用lynx
,curl
或wget
所以让系统调用类似:
system("wget http://yourdomain.com/path/to/file.php?params=1 > /dev/null");
然后应使用允许QUERY STRING
的网络服务器执行该脚本。
修改强>
为您的变量量身定制:(注意.com之后可能需要斜杠)
system("wget http://yourdomain.com" . $row['cron_action_script_path'] . $row['params'] . " > /dev/null");
答案 2 :(得分:1)
尝试使用is_readable
代替is_file
。文件可以存在,而当前用户无法读取。
$_GET
个变量。看看how PHP expects and handles commandline arguments。