Я пытаюсь прочитать имя файла при запуске моего файла php (в CLI).
Команда времени выполнения: php phpfile.php filename.csv
Строка кода выглядит следующим образом:
$argv = $_SERVER[argv];
Я получаю следующую ошибку:
Использование неопределенной константы argv — предполагается, что argv в
/home/holcim/csvimport.php в строке 14
я имею register_argv_argc
установлен в ON
,
Это потому что $_SERVER
не существует для CLI SAPI, потому что в командной строке нет сервера. Вы просто используете $argc
а также $argv
потому что они автоматически заселяются.
Увидеть эта страница документа для некоторых деталей о запуске сценариев из CLI.
РЕДАКТИРОВАТЬ
Обратите внимание, что $argv = $_SERVER[argv];
вернет Use of undefined constant argv - assumed 'argv'
в любом SAPI (даже для веб-сервера). Так должно быть $argv = $_SERVER['argv'];
если у вас нет argv
определяется как константа.
$ argv и $ argc устанавливаются автоматически при запуске вашего скрипта.
$ argc возвращает количество аргументов (включая имя скрипта), а $ argv — массив, содержащий аргументы.
Используйте массив 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];
?>