0) ? $messages[count($messages) - 1]["id"] + 1 : 0; $messages[] = [ "id" => $next_id, "time" => time(), "name" => $_POST["name"], "content" => $_POST["content"] ]; // Remove old messages if necessary to keep the buffer size if (count($messages) > $messages_buffer_size) $messages = array_slice($messages, count($messages) - $messages_buffer_size); // Rewrite and unlock the message file ftruncate($buffer, 0); rewind($buffer); fwrite($buffer, json_encode($messages)); flock($buffer, LOCK_UN); fclose($buffer); // Optional: Append message to log file (file appends are atomic) if ($enable_chatlog) file_put_contents("chatlog.txt", date("Y-m-d H:i:s") . "\t" . strtr($_POST["name"], "\t", " ") . "\t" . strtr($_POST["content"], "\t", " ") . "\n", FILE_APPEND); exit(); } ?>