Чтение позиционных параметров с использованием PHP - PullRequest
4 голосов
/ 21 декабря 2010

Я использую страницу .php, как сценарий оболочки.Единственная проблема заключается в том, что я не знаю, как передать позиционные параметры на страницу PHP.

#!/usr/bin/php
<?php

$myfile="balexp.xml";

Следующее не работает на этой странице php и работает в сценарии оболочки.

myvar=$1

Как передать переменные на страницу php?

Ответы [ 4 ]

4 голосов
/ 21 декабря 2010

Вам необходимо использовать массив $argv.

Запустите следующий CLI PHP, передав ему аргументы командной строки:

#!/usr/bin/php
<?php
var_dump($argv);
?>

На ходу:

$ chmod u+x a.php
$ ./a.php
array(1) {
  [0]=>
  string(7) "./a.php"
}

$ ./a.php foo
array(2) {
  [0]=>
  string(7) "./a.php"
  [1]=>
  string(3) "foo"
}

$ 

Очевидно, $argv[0] содержит имя сценария, $argv[1] содержит первый аргумент командной строки.

Руководство содержит все подробности о том, как обрабатывать аргументы командной строки.

3 голосов
/ 21 декабря 2010
#!/usr/bin/php
<?php

$myfile=$argv[1];

Подробнее см. $ argv .

1 голос
/ 21 декабря 2010

Вы передаете позиционные параметры через соглашение $ argv. Смотри http://php.net/manual/en/features.commandline.usage.php.

1 голос
/ 21 декабря 2010

если у вас включено register_argc_argv, вы можете использовать $argv

your_script.php haha hehe

<?
echo $argv[0]    <-- your_script.php 
$myfile=$argv[1];
echo $myfile;    <-- return haha
?>

подробнее: http://www.php.net/manual/en/features.commandline.usage.php

...