我在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')
所以看起来在SHH调用PHP文档时包含get变量有问题。
还有别的办法吗?我需要能够以某种方式动态地调用我的参数
if (is_file($docRoot . $row['cron_action_script_path'])) {
$_GET['params'] = $row['params'];
include $docRoot . $row['cron_action_script_path'];
}
您正在呼叫php CLI并试图使用QUERY STRING
数据,这是特定于web服务器的。您要么需要修改脚本以接受参数,要么使用lynx
、curl
或wget
等程序调用它
那么让系统调用如下内容:
system("wget http://yourdomain.com/path/to/file.php?params=1 > /dev/null");
然后应该使用webserver执行该脚本,这将允许QUERY STRING
。
适合使用你的变量:(注意。com后面可能需要一个斜杠)
system("wget http://yourdomain.com" . $row['cron_action_script_path'] . $row['params'] . " > /dev/null");
尝试is_readable
代替is_file
。一个文件可以存在而不被当前用户读取。
$_GET
变量。看一看PHP如何期望和处理命令行参数。