Я сделал сценарий 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"];