0

我从 cron 作业调用的 PHP 文档中有以下内容。

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

有没有办法解决?我需要能够以某种方式动态调用我的参数。

4

3 回答 3

4
if (is_file($docRoot . $row['cron_action_script_path'])) {
    $_GET['params'] = $row['params'];
    include $docRoot . $row['cron_action_script_path'];
}
于 2011-09-19T18:15:40.737 回答
3

您正在调用 php CLI 并尝试使用QUERY STRING特定于网络服务器的数据。您将需要修改脚本以接受参数或使用诸如lynx,curlwget

所以让系统调用类似于:

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");
于 2011-09-19T18:12:46.493 回答
1

尝试is_readable代替is_file. 文件可以存在而不被当前用户读取。

但是,像这样传递参数是行不通的。您不能$_GET在命令行上执行变量。看看PHP 如何期望和处理命令行参数

于 2011-09-19T18:11:48.303 回答