Как передать параметры с 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
Ответы
Ответ 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"];