параметры — Невозможно прочитать переменные CLI, используя _SERVER

Я пытаюсь прочитать имя файла при запуске моего файла php (в CLI).

Команда времени выполнения: php phpfile.php filename.csv

Строка кода выглядит следующим образом:

$argv = $_SERVER[argv];

Я получаю следующую ошибку:

Использование неопределенной константы argv — предполагается, что argv в
/home/holcim/csvimport.php в строке 14

я имею register_argv_argc установлен в ON,

0

Решение

Это потому что $_SERVER не существует для CLI SAPI, потому что в командной строке нет сервера. Вы просто используете $argc а также $argv потому что они автоматически заселяются.

Увидеть эта страница документа для некоторых деталей о запуске сценариев из CLI.

РЕДАКТИРОВАТЬ

Обратите внимание, что $argv = $_SERVER[argv]; вернет Use of undefined constant argv - assumed 'argv' в любом SAPI (даже для веб-сервера). Так должно быть $argv = $_SERVER['argv']; если у вас нет argv определяется как константа.

2

Другие решения

$ argv и $ argc устанавливаются автоматически при запуске вашего скрипта.

$ argc возвращает количество аргументов (включая имя скрипта), а $ argv — массив, содержащий аргументы.

0

Используйте массив argv и переменные argc. Вот код, чтобы начать вас. Он отображает ошибку, если вы пытаетесь запустить его в веб-браузере. Если счетчик параметров меньше 2, он отображает мини-справку и завершает работу. Наконец, когда введен хотя бы 1 аргумент, аргумент1 будет содержать значение первого аргумента.

<?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];
?>
0