Cron 作业在浏览器中执行,但不在终端中执行


Cron job executes in browser but not in terminal

您好,我在终端中运行此 cron 脚本时遇到问题,

http://subdomain.website.com/database.php?password=mypassword

当我将此cron脚本粘贴到浏览器中时,它可以工作并将文件下载到我的本地服务器,但在终端中它无法执行,我在互联网上阅读了许多文章,他们说您不能在cron中使用特殊参数,例如"?password=mypassword"

我试图以多种方式重新发明这个命令,但无济于事,curl、get、wget 和 wget -q 也不起作用。

要使用参数从命令行执行 PHP,您可以像这样调用它:

$ php /path/to/php/file arg1 arg2 arg3

然后,在 PHP 脚本中,您可以使用

$argv[0] // would return /path/to/php/file/
$argv[1] // returns arg1
$argv[2] // returns arg2 

如果你想制作你的脚本,以便可以通过终端和浏览器访问它,你可以做这样的事情:

$password = isset($argv[1]) ? $argv[1] : $_GET['password'];

虽然如果你把它用于CRON并且你需要参数,那么你的程序架构就很糟糕。您应该在脚本中对这些参数进行硬编码,例如变量/属性/等。