Как передать параметры из bash в php-скрипт?

Я сделал сценарий aa bash, который запускает php-скрипт. Он отлично работает без параметров, но когда я добавляю параметры (id и url), есть некоторые ошибки:

PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf .d/mcrypt.ini on line 1 in Unknown on line 0 Could not open input file: /var/www/dev/dbinsert/script/automatisation.php? id=1 

Я запускаю php-скрипт из bash следующим образом:

 php /var/www/dev/dbinsert/script/automatisation.php?id=19&url=http://bkjbezjnkelnkz.com 

Назовите это как:

 php /path/to/script/script.php -- 'id=19&url=http://bkjbezjnkelnkz.com' 

Кроме того, измените свой PHP-скрипт на использование parse_str () :

 parse_str($argv[1]); 

Если индекс $_SERVER['REMOTE_ADDR'] не установлен.


Для более сложной обработки может потребоваться getopt () , но parse_str () – это быстрый способ, чтобы заставить его работать.

Вы не можете передавать параметры запроса GET в интерфейс командной строки PHP. Либо передайте аргументы в качестве стандартных аргументов командной строки, либо используйте глобальные переменные $argc и $argv для их чтения или (если вы должны использовать параметры GET / POST), вызовите скрипт через curl / wget и передайте параметры таким образом – при условии, что у вас есть скрипт, доступный через локальный веб-сервер.

Вот как вы можете передавать аргументы для чтения $argc и $argv (the – указывает, что все последующие аргументы должны идти в скрипт, а не в двоичный интерпретатор PHP):

php myfile.php -- argument1 argument2

– Вариант 1: php-cgi –

Используйте «php-cgi» вместо «php» для запуска вашего скрипта. Это самый простой способ, поскольку вам не нужно специально модифицировать ваш PHP-код для работы с ним:

 php-cgi -f /my/script/file.php id=19 myvar=xyz 

– Вариант 2: если у вас есть веб-сервер –

Если файл php находится на веб-сервере, вы можете использовать 'wget' в командной строке:

 wget 'http://localhost/my/script/file.php?id=19&myvar=xyz' 

ИЛИ:

 wget -q -O - "http://localhost/my/script/file.php?id=19&myvar=xyz" 

– Доступ к переменным в php –

В обоих вариантах 1 и 2 вы получаете следующие параметры:

 $id = $_GET["id"]; $myvar = $_GET["myvar"];