За последние 24 часа нас посетили 53230 программистов и 1713 роботов. Сейчас ищут 899 программистов ...

Проблема кодировок Google Translate

Тема в разделе "PHP для новичков", создана пользователем ARACOOL, 19 сен 2009.

  1. ARACOOL

    ARACOOL Активный пользователь

    С нами с:
    10 ноя 2006
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Самарканд
    Есть класс для работы с Google Translate. Но он при переводе с русского на англ. отображает ??????...
    Пробовал менять кодировки самого файла скрипта, iconv. Без результатно!
    PHP:
    1.  
    2. <?php
    3. class Google_API_translator {
    4.     public $opts = array("text" => "", "language_pair" => "en|it");
    5.     public $out = "";
    6.  
    7.     function __construct() {
    8.     }
    9.  
    10.     function setOpts($opts) {
    11.         if($opts["text"] != "") $this->opts["text"] = $opts["text"];
    12.         if($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
    13.     }
    14.  
    15.     function translate() {
    16.         $this->out = "";
    17.         $google_translator_url = "http://translate.google.com/translate_t?langpair=".urlencode($this->opts["language_pair"])."&amp;";
    18.         $google_translator_data .= "text=".urlencode($this->opts["text"]);
    19.         $gphtml = $this->postPage(array("url" => $google_translator_url, "data" => $google_translator_data));
    20.         $out = substr($gphtml, strpos($gphtml, "<div id=result_box dir=\"ltr\">"));
    21.         $out = substr($out, 29);
    22.         $out = substr($out, 0, strpos($out, "</div>"));
    23.         $this->out = $out;
    24.         return $this->out;
    25.     }
    26.  
    27.     // post form data to a given url using curl libs
    28.     function postPage($opts) {
    29.         $html = "";
    30.         if($opts["url"] != "" && $opts["data"] != "") {
    31.             $ch = curl_init($opts["url"]);
    32.            
    33.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    34.             curl_setopt($ch, CURLOPT_HEADER, 1);
    35.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    36.             curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    37.             curl_setopt($ch, CURLOPT_POST, 1);
    38.             curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
    39.             $html = curl_exec($ch);
    40.             if(curl_errno($ch)) $html = "";
    41.             curl_close ($ch);
    42.         }
    43.         return $html;
    44.     }
    45. }
    46. $g = new Google_API_translator();
    47. $text='Привет!!';
    48. $g->setOpts(array("text" => $text, "language_pair" => "ru|en"));
    49. $g->translate();
    50. $text=$g->out;
    51. print $text;
    52. ?>
    53.  
     
  2. ARACOOL

    ARACOOL Активный пользователь

    С нами с:
    10 ноя 2006
    Сообщения:
    52
    Симпатии:
    0
    Адрес:
    Самарканд
    уже пару дней не могу решить