Я хочу передать параметры следующей функции:
system ("/usr/bin/nohup/usr/bin/php -q/var/www/vhosts/example.com/httpdocs/foldername/filename.php>/dev/null 2>/dev/null &");
Я пробовал следующие вещи, но не повезло.
system ("/usr/bin/nohup/usr/bin/php -q/var/www/vhosts/example.com/httpdocs/foldername/filename.php?abc=123>/dev/null 2>/dev/ноль &");
system ("/usr/bin/nohup/usr/bin/php -q/var/www/vhosts/example.com/httpdocs/foldername/filename.php abc = 123>/dev/null 2>/dev/null & ");
Пожалуйста, объясните мне, как передать параметр и как получить это значение параметра в этом файле example.php.
благодаря
Командная строка php не принимает строки get. Это файл, а не URL-адрес. Вы можете передать аргументы в файл, как и любой сценарий командной строки (пробел, разделенный одиночными словами или кавычками), и получить доступ к ним через $argv
. Вы можете узнать больше об использовании командной строки php в руководстве:
php.net/manual/en/features.commandline.php php.net/manual/en/reserved.variables.argv.php
Вы также можете передать строку с строкой в строке запроса (я бы предложил ее процитировать) и использовать parse_str для получения ключей/значений.
Строка Cmd: PHP скриптName.php "foo=1&bar=2"
в скрипте:
$queryString = parse_str($argv[1]);
//and now you have:
$queryString['foo']; //equals 1
$queryString['bar']; //equals 2
$argv
. Вы можете прочитать больше об использовании командной строки php в руководстве: php.net/manual/en/features.commandline.php и php.net/manual/en/reserved.variables.argv.php