В то время как вы, как правило, без него, можете и должны устанавливать заголовок Content-Type:
<?PHP
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);
Если я не использую определенную структуру, я обычно разрешаю некоторые параметры запроса изменить поведение вывода. Полезно, как правило, для быстрого устранения неполадок, чтобы не отправлять заголовок или иногда print_r полезную нагрузку данных для глазного яблока (хотя в большинстве случаев это не обязательно).
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
.