作品:
php -q /home/site/public_html/cron/file.php
不起作用:
php -q /home/site/public_html/cron/file.php?variable=1
有什么建议么?我需要将变量作为 $_GET 发送(或不发送)
命令行参数被传入$argv
而不是普通的$_GET
/ $_POST
-Arrays
当然,这不适用于 URI 样式参数(该?variable=1
部分)。所以你必须这样称呼它:php -q /path/to/script.php 1
.
作为替代方案,您可以使用getopt
:
<?php
$shortopts = implode("", array(
"v:"
));
$longopts = array(
"variable:", // Required value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
并称其为php -q /path/to/script.php --variable=1
.
做这样的事情
curl http://hostname/cron/file.php?variable=1
在 file.php 中,您将管理代码以获取 $_GET[variable]
这将表现为一个简单的浏览器调用,但仅在您的外壳/终端中
希望这可以帮助
解决这个问题的最简单方法(假设 public_html 是公共 WWW)是让 cron 调用 wget 或 curl 来访问 PHP 文件,因此 URL 变量会正常处理。
-q 表示没有头,所以我假设的 get-fields 没有空间,至少我希望如此:D
格雷茨