PHP - аргументы командной строки в Windows - PullRequest
7 голосов
/ 15 сентября 2008

Я пытаюсь запустить PHP из командной строки под Windows XP.

Это работает, за исключением того факта, что я не могу предоставить параметры для моего сценария PHP.

Мой тестовый пример:

echo "param = ".$param."\n";  
var_dump($argv);  

Я хочу назвать это как:

php.exe -f test.php -- param=test

Но я никогда не получаю скрипт, чтобы принять мой параметр.

Результат, который я получаю из приведенного выше сценария

`Примечание PHP: Неопределенная переменная: param в C: \ test.php в строке 2

param = ''
array(2) {
  [0]=> string(8) "test.php"
  [1]=> string(10) "param=test"
}

Я пытаюсь это сделать с помощью PHP 5.2.6. Это ошибка в PHP5?

Передача параметров обрабатывается в онлайн-справке Note: If you need to pass arguments to your scripts you need to pass -- as the first argument when using the -f switch. Казалось, что это работает под PHP4, но не под PHP5. Под PHP4 я мог использовать тот же скрипт, который мог запускаться на сервере без изменений в командной строке. Это удобно для локальной отладки, например, для сохранения вывода в файле, который нужно изучить.

Ответы [ 11 ]

0 голосов
/ 15 сентября 2008

$ argv - это массив, содержащий все параметры командной строки ... Вам нужно проанализировать этот массив и установить $ param самостоятельно.

$tmp = $argv[1];             // $tmp="param=test"
$tmp = explode("=", $tmp);   // $tmp=Array( 0 => param, 1 => test)

$param = $tmp[1];            // $param = "test";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...