我试图在运行我的 php 文件(在 CLI 中)时读取文件名。
运行时命令:php phpfile.php filename.csv
代码行如下:
$argv = $_SERVER[argv];
我收到以下错误:
使用未定义的常量 argv - 在第 14 行的 /home/holcim/csvimport.php 中假定为“argv”
我已经register_argv_argc
设置为ON
.
我试图在运行我的 php 文件(在 CLI 中)时读取文件名。
运行时命令:php phpfile.php filename.csv
代码行如下:
$argv = $_SERVER[argv];
我收到以下错误:
使用未定义的常量 argv - 在第 14 行的 /home/holcim/csvimport.php 中假定为“argv”
我已经register_argv_argc
设置为ON
.
这是因为$_SERVER
CLI SAPI 不存在,因为命令行中没有服务器。您只需使用$argc
and$argv
因为它们是自动填充的。
有关从 CLI 运行脚本的一些详细信息,请参阅此文档页面。
编辑
请注意,这$argv = $_SERVER[argv];
将Use of undefined constant argv - assumed 'argv'
在任何 SAPI 中返回(即使对于网络服务器)。$argv = $_SERVER['argv'];
除非您已将argv
其定义为常量,否则它应该是。
$argv 和 $argc 在您运行脚本时自动设置。
$argc 获取参数的数量(包括脚本名称),$argv 是一个包含参数的数组。
利用 argv 数组和 argc 变量。这是让您开始的代码。如果您尝试在 Web 浏览器中运行它,它会显示错误。如果参数计数小于 2,则显示一条迷你帮助消息并退出。最后,当输入至少一个参数时,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];
?>