PHP-无法使用_SERVER读取CLI变量


PHP - Cannot read CLI variables using _SERVER

运行php文件(在CLI中)时,我正在尝试读取文件名。

运行时命令:php phpfile.php filename.csv

代码行如下:

$argv = $_SERVER[argv];

我得到以下错误:

在中使用未定义的常量argv-假定为"argv"/home/holcim/csvimport.php在线14

我已将register_argv_argc设置为ON

这是因为CLI SAPI不存在$_SERVER,因为命令行中没有服务器。您只需使用$argc$argv,因为它们是自动填充的。

有关从CLI运行脚本的一些详细信息,请参阅此文档页。

编辑

请注意,$argv = $_SERVER[argv];将在任何SAPI中返回Use of undefined constant argv - assumed 'argv'(即使对于Web服务器也是如此)。它应该是$argv = $_SERVER['argv'];,除非将argv定义为常量。

$argv和$argc是在运行脚本时自动设置的。

$argc获取参数的数量(包括脚本名称),$argv是包含参数的数组。

使用argv数组和argc变量。这是启动代码。如果你试图在网络浏览器中运行它,它会显示一个错误。如果参数计数小于2,则会显示一条小型帮助消息并退出。最后,当至少输入1个参数时,argument1将包含第一个参数值。

<?php
if ($_SERVER['HTTP_USER_AGENT']){echo "Doesnt work in web mode";exit();}
if ($argc < 2){
    echo "'n'n";
    echo $argv[0]." needs arguments as follows...'n'n";
    echo "argument1 -- does something'n";
    exit();
}
$argument1 = $argv[1];
?>