]> git.donarmstrong.com Git - roundcube.git/blob - program/steps/utils/spell_googie.inc
Imported Debian patch 0.5.1+dfsg-7
[roundcube.git] / program / steps / utils / spell_googie.inc
1 <?php
2
3 /*
4  +-----------------------------------------------------------------------+
5  | program/steps/utils/spell_googie.inc                                  |
6  |                                                                       |
7  | This file is part of the Roundcube Webmail client                     |
8  | Copyright (C) 2005-2007, Roundcube Dev. - Switzerland                 |
9  | Licensed under the GNU GPL                                            |
10  |                                                                       |
11  | PURPOSE:                                                              |
12  |   Submit request to Google's spell checking engine                    |
13  |                                                                       |
14  | CREDITS:                                                              |
15  |   Script from GoogieSpell by amix.dk                                  |
16  |                                                                       |
17  +-----------------------------------------------------------------------+
18  | Author: Thomas Bruederli <roundcube@gmail.com>                        |
19  +-----------------------------------------------------------------------+
20
21  $Id: spell_googie.inc 3989 2010-09-25 13:03:53Z alec $
22
23 */
24
25 $REMOTE_REQUEST = TRUE;
26
27 // default settings
28 $host = "ssl://www.google.com";
29 $port = 443;
30 $lang = get_input_value('lang', RCUBE_INPUT_GET);
31 $path = "/tbproxy/spell?lang=$lang";
32
33 // spell check uri is configured
34 if (!empty($CONFIG['spellcheck_uri']))
35   {
36   $a_uri = parse_url($CONFIG['spellcheck_uri']);
37   $ssl = ($a_uri['scheme']=='https' || $a_uri['scheme']=='ssl');
38   $port = $a_uri['port'] ? $a_uri['port'] : ($ssl ? 443 : 80);
39   $host = ($ssl ? 'ssl://' : '') . $a_uri['host'];
40   $path = $a_uri['path'] . ($a_uri['query'] ? '?'.$a_uri['query'] : '') . $lang;
41   }
42
43 $data = file_get_contents('php://input');
44 $store = "";
45
46 if ($fp = fsockopen($host, $port, $errno, $errstr, 30))
47   {
48   $out = "POST $path HTTP/1.0\r\n";
49   $out .= "Host: " . str_replace('ssl://', '', $host) . "\r\n";
50   $out .= "Content-Length: " . strlen($data) . "\r\n";
51   $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
52   $out .= "Connection: Close\r\n\r\n";
53   $out .= $data;
54   fwrite($fp, $out);
55
56   while (!feof($fp))
57     $store .= fgets($fp, 128);
58   fclose($fp);
59   }
60
61 // remove headers
62 $pos = strpos($store, '<?xml');
63 $store = substr($store, $pos);
64
65 // set response length
66 header("Content-Length: " . strlen($store));
67
68 // Don't use server's default Content-Type charset (#1486406)
69 header("Content-Type: text/xml; charset=".RCMAIL_CHARSET);
70 print $store;
71 exit;
72
73