使用SSH调用PHP文档包括get变量


Call PHP document with SSH includes get variable

我在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服务器的。您要么需要修改脚本以接受参数,要么使用lynxcurlwget等程序调用它

那么让系统调用如下内容:

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如何期望和处理命令行参数。