| +-----------------------------------------------------------------------+ */ // read input $lang = rcube_utils::get_input_value('lang', rcube_utils::INPUT_GET); $data = file_get_contents('php://input'); $learn_word = strpos($data, ''); // Get data string $left = strpos($data, ''); $right = strrpos($data, ''); $data = substr($data, $left+6, $right-($left+6)); $data = html_entity_decode($data, ENT_QUOTES, RCUBE_CHARSET); $spellchecker = new rcube_spellchecker($lang); if ($learn_word) { $spellchecker->add_word($data); $result = ''; } else if (empty($data)) { $result = ''; } else { $spellchecker->check($data); $result = $spellchecker->get_xml(); } if ($err = $spellchecker->error()) { rcube::raise_error(array('code' => 500, 'type' => 'php', 'file' => __FILE__, 'line' => __LINE__, 'message' => "Spell check engine error: " . trim($err)), true, false); header("HTTP/1.0 500 Internal Server Error"); exit; } // set response length header("Content-Length: " . strlen($result)); // Don't use server's default Content-Type charset (#1486406) header("Content-Type: text/xml; charset=" . RCUBE_CHARSET); print $result; exit;