Реагировать PHP получить данные POST

Я пытаюсь запустить простое веб-приложение через веб-сервер ReactPHP, но не могу понять, где взять данные POST, поступающие из HTML-формы. Сервер определяется как:

include 'vendor/autoload.php';

register_shutdown_function(function() {
echo implode(PHP_EOL, error_get_last()), PHP_EOL;
});

$loop = React\EventLoop\Factory::create();
$socket = new React\Socket\Server($loop);
$http = new React\Http\Server($socket);
$http->on('request', function(React\Http\Request $request, React\Http\Response $response) {
print_r($request);
$response->writeHead(200, array('Content-type' => 'text/html'));
$response->end('<form method="POST"><input type="text" name="text"><input type="submit" name="submit" value="Submit"></form>');
});
$socket->listen(9000);
$loop->run();

Когда я публикую некоторую строку, используя форму HTML, $request Объект при печати на консоли выглядит так:

React\Http\Request Object
(
[readable:React\Http\Request:private] => 1
[method:React\Http\Request:private] => POST
[path:React\Http\Request:private] => /
[query:React\Http\Request:private] => Array
(
)

[httpVersion:React\Http\Request:private] => 1.1
[headers:React\Http\Request:private] => Array
(
[User-Agent] => Opera/9.80 (X11; Linux i686) Presto/2.12.388 Version/12.16
[Host] => localhost:9000
[Accept] => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
[Accept-Language] => it,en;q=0.9
[Accept-Encoding] => gzip, deflate
[Referer] => http://localhost:9000/
[Connection] => Keep-Alive
[Content-Length] => 24
[Content-Type] => application/x-www-form-urlencoded
)

[listeners:protected] => Array
(
)

)

Здесь я нигде не могу найти свои данные. Я думал, что это должно быть расположено в query собственность, но она пуста.

Когда я делаю GET-запросы, вместо этого данные, передаваемые в строке запроса, можно найти внутри query собственность $request объект.

Итак, где я могу найти данные, переданные с помощью запросов POST?

4

Решение

Я повторяю последнее изменение моего вопроса здесь, так что этот вопрос может быть помечен как ответ.

Неважно, нашел ответ Вот. Похоже, что React PHP пока не поддерживает простой способ чтения данных POST. Что мы можем сделать, так это прочитать данные, как только они появятся, наблюдая за событием data из $request объект:

$request->on('data', function($data) {
// Here $data contains our POST data.
// The $request needs to be manually ended, though.
});
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]