问题描述
我在带套接字的PHP上找到了简单HTTP服务器的代码。对于测试,我尝试使用其标头响应客户端。有用。但是如何获取其POST数据? while
之后,$headers
仍然不包含POST数据。
<?PHP
$socket = stream_socket_server("tcp://0.0.0.0:8000",$errno,$errstr);
if (!$socket)
{
die("$errstr ($errno)\n");
}
$connects = [];
while (true)
{
// creating an array of listening sockets
$read = $connects;
$read[] = $socket;
$write = $except = null;
// wait for sockets to read (no timeout)
if (!stream_select($read,$write,$except,null))
{
break;
}
if (in_array($socket,$read))
{
// new connection
$connect = stream_socket_accept($socket,-1); // accept new connection
$connects[] = $connect; // add to list
unset($read[array_search($socket,$read)]);
}
foreach ($read as $connect)
{
// handle all connections
$headers = [];
while ($buffer = rtrim(fgets($connect)))
{
$headers[] = $buffer;
}
$response = implode("\n",$headers) . "\nCount: " . count($headers);
echo "================== RESPONSE\n" . $response . "\n================== END RESPONSE\n";
fwrite($connect,"HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\nConnection: close\r\n\r\n" . $response);
fclose($connect);
unset($connects[array_search($connect,$connects)]);
}
}
fclose($server);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)