ПХП и Винда
Порядка полугода назад разговаривали
А тут, на днях, нужно было продумать
По задумке внешний клиент дёргает «ручку» у сервиса, получает некий идентификатор и ждёт до поры до времени. Работа сервиса же
Функция не заработала правильно ни с «Апачем», ни с «Энжиникс», в комментариях пользователей к документации есть одинокий комментарий
Note that register_shutdown_function() does not work under Apache on Windows platforms. Your shutdown function will be called, but the connection will not close until the processing is complete. Zend tells me that this is due to a difference between Apache for *nix and Apache for Windows.
Похоже с тех пор ничего не изменилось. Ну хорошо, я вспомнил, что в последние ПХП входит патч
Решили не перебирать больше решения, а сразу перейти на запуск отдельного фонового процесса. Оказалось и это не тривиально сделать. Под «Виндой» нужно это делать следующим образом:
$commandline = 'start /b тут-программа-которую-надо-запустить';
pclose(popen($commandline, 'r'));Сплошные приключения.
Комментарии 11
Женя, расскажи лучше как получить тело
Я тоже это знаю, но вдруг…
Например, получить тело запроса чтобы распарсить все значения полей (имена без скобок) с одинаковыми именами.
Комментарий для Дмитрий:
Правильнее поправить в коде так, чтобы в ПХП они приходили в соответствии с требованиями этого языка.
Ну, про эту «кроссплатформенность» хорошо написано у Спольски в «Дырявых абстракциях» — http://russian.joelonsoftware.com/Articles … tions.html