У меня есть конечная точка веб-службы, которая должна вызывать PHP-скрипт CLI другого разработчика в ходе его выполнения.Псевдокод выглядит так:
function startCLI($input, $output){
$cmd = escapeshellarg('php bin/startcli.php $input $output');
exec($cmd, $output, $ret);
if ($output){
print_r($output[0]);
}
}
Теперь вы можете спросить: почему бы не передать $_POST['var']
в скрипт clistart.php
?
Ну, вы получаете то, за что платите, когда иногда получаете свой унаследованный код из-за рубежа, и время, которое у меня уходит на то, чтобы разобрать их систему и собрать ее вместе, больше, чем время, которое у меня есть.реализовать все решение.
Так что давайте просто оговорим, что я не могу добавить новые переменные в сценарий clistart.php
и взять его оттуда.Черт возьми, это академическое упражнение.Имеет ли сценарий CLI, выполняемый из запрошенного в Интернете сценария PHP, доступ к $ _GET или $ _POST для его запуска?
ОБНОВЛЕНИЕ: я пытался добавить оба ключа к $ _ENV и getenv()
и putenv()
, но результат тот же - я могу обновить среду для текущего сценария и дочернего сценария, который он выполняет, чтобы ВЫПОЛНИТЬ задание, но поскольку задания затем выполняются постоянным процессом, имеющим собственный контекст $ _ENV,не похоже на способ передачи этой переменной в контекст постоянного процесса.
Мне придется либо обратиться к базе данных, либо к файлу, если у кого-то нет другой идеи.