gpt4 book ai didi

php - $GLOBALS ["argv"] 和 $argv 为空,$_SERVER ["argv"] 就好了

转载 作者:可可西里 更新时间:2023-10-31 22:45:30 31 4
gpt4 key购买 nike

我正在与在 Hostgator 共享主机上运行的 PHP CLI 的一个(也许)简单问题作斗争。一个简单的代码:

<?php
var_dump($argv);
var_dump($GLOBALS["argv"]);
var_dump($_SERVER["argv"]);
var_dump(ini_get("register_argv_argv"));
?>

在我的本地机器上运行时以及其他几个 php 实例:

php test.php arg1

按预期正确输出:

array (
0 => 'test.php',
1 => 'arg1'
)
array (
0 => 'test.php',
1 => 'arg1'
)
array (
0 => 'test.php',
1 => 'arg1'
)
1

但是从 Hostgator 共享主机上的 cron 运行它输出:

array (
)
NULL
array (
0 => 'test.php',
1 => 'arg1'
)
1

我正在处理的代码是遗留代码,它在很大程度上依赖于 $GLOBALS["argv"] 来解析命令行参数。我无法修改整个代码库以改为依赖 $_SERVER["argv"]。

可能是什么原因导致我的所有 PHP 实例都用命令行参数填充所有数组,而 Hostgator 上托管的 php 根本没有填充 $GLOBALS["argv"]?

我做了一个解决方法来处理这个问题,但我讨厌不知道为什么会发生这样的事情:)

感谢任何想法!

最佳答案

我遇到了同样的问题,没有 $_SERVER['argv'];

尝试使用 php-cli 而不是 php:

$job = "* * * * * php-cli /home/user/file.php surf";

它对我有用!

关于php - $GLOBALS ["argv"] 和 $argv 为空,$_SERVER ["argv"] 就好了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12819877/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com