PHP запускает фоновый процесс с помощью nohup эквивалент

В то время как вы, как правило, без него, можете и должны устанавливать заголовок Content-Type:

<?PHP
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);

Если я не использую определенную структуру, я обычно разрешаю некоторые параметры запроса изменить поведение вывода. Полезно, как правило, для быстрого устранения неполадок, чтобы не отправлять заголовок или иногда print_r полезную нагрузку данных для глазного яблока (хотя в большинстве случаев это не обязательно).

0
задан user1432181 31 March 2019 в 01:26
поделиться

1 ответ

start /B в порядке. Однако обычно php нет в %PATH% в Windows. Вы должны определить полный путь. Попробуйте константу PHP_BINARY, которая должна содержать абсолютный путь к исполняемому файлу PHP.

Если вы хотите прочитать поток stdout процесса, вы можете сделать его неблокирующим:

$cmd = PHP_BINARY;
if(is_resource($proc = proc_open("start /B $cmd script.php", [['pipe', 'r'], ['pipe', 'w'], ['pipe', 'w']], $pipes)))
{
  echo '<h1>Process Stream</h1>', PHP_EOL;
  stream_set_blocking($pipes[1], false);
  stream_set_blocking($pipes[2], false);

Затем вы можете получить доступ к потокам, не ожидая EOF / EOL .

0
ответ дан Quasimodo's clone 31 March 2019 в 01:26
поделиться