Подтвердить что ты не робот

Как передать параметры с bash на PHP скрипт?

Я сделал a bash script, которые запускают 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 script из bash следующим образом:

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

Ответ 1

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

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

Также измените свой PHP script, чтобы использовать parse_str():

parse_str($argv[1]);

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


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

Ответ 2

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

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

php myfile.php -- argument1 argument2

Ответ 3

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

Используйте "php-cgi" вместо "php" для запуска script. Это самый простой способ, поскольку вам не нужно специально модифицировать ваш 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"];