'.$requestin; fwrite($socket, $request) or exit('{"error":"Could not send data to server"}'); } function getResponseFTL($socket) { $response = array(); $errCount = 0; while (true) { $out = fgets($socket); if ($out == '') { ++$errCount; } if ($errCount > 100) { // Tried 100 times, but never got proper reply, fail to prevent busy loop exit('{"error":"Tried 100 times to connect to FTL server, but never got proper reply. Please check Port and logs!"}'); } if (strrpos($out, '---EOM---') !== false) { break; } $out = rtrim($out); if (strlen($out) > 0) { $response[] = $out; } } return $response; } function disconnectFTL($socket) { if (is_resource($socket)) { fclose($socket); } } function callFTLAPI($request) { $socket = connectFTL(); if (!is_resource($socket)) { $data = array('FTLnotrunning' => true); } else { sendRequestFTL($request, $socket); $data = getResponseFTL($socket); } disconnectFTL($socket); return $data; }