1

作品:

php -q /home/site/public_html/cron/file.php

不起作用:

php -q /home/site/public_html/cron/file.php?variable=1

有什么建议么?我需要将变量作为 $_GET 发送(或不发送)

4

4 回答 4

1

命令行参数被传入$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.

于 2012-06-11T17:38:32.910 回答
1

做这样的事情

curl http://hostname/cron/file.php?variable=1

在 file.php 中,您将管理代码以获取 $_GET[variable]

这将表现为一个简单的浏览器调用,但仅在您的外壳/终端中

希望这可以帮助

于 2012-06-11T17:54:49.623 回答
0

解决这个问题的最简单方法(假设 public_html 是公共 WWW)是让 cron 调用 wget 或 curl 来访问 PHP 文件,因此 URL 变量会正常处理。

于 2012-06-11T17:52:47.370 回答
-1

-q 表示没有头,所以我假设的 get-fields 没有空间,至少我希望如此:D

格雷茨

于 2012-06-11T17:50:47.510 回答