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

时间:2011-09-19 18:10:35

标签: php ssh system require-once

我在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变量存在问题。

这周围有吗?我需要能够以某种方式动态调用我的参数。

3 个答案:

答案 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服务器的。您需要修改脚本以接受参数或使用lynxcurlwget

等程序调用参数

所以让系统调用类似:

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