function A_UseGoogleTranslate($str, $from='en', $to='ru', $cp1251=true)
{
if ($cp1251) $str = iconv("Windows-1251", "UTF-8", $str);
$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
if (!$fp)
{
trigger_error("$errstr ($errno) \n", E_USER_WARNING);
return "";
}
else
{
$text = "text=".urlencode($str);
$out = "POST /translate_a/t?client=t&sl=".$from."&tl=".$to." HTTP/1.1\r\n";
$out .= "Host: www.google.com\r\n";
$out .= "User-Agent: Mozilla/5.0\r\n";
$out .= "Accept-Encoding: deflate\r\n";
$out .= "Content-length: ".strlen($text)."\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $text;
fputs($fp, $out);
$res = "";
while (!feof($fp))
{
$res .= fgets($fp, 1024);
}
fclose($fp);
}
$res = explode("\r\n\r\n",$res);
$res = explode("\r\n",$res[1]);
$result = stripslashes(substr($res[1],1,-1));
if ($cp1251) return iconv("UTF-8", "Windows-1251", $result);
else return $result;
}
fsockopen и спец.символы
Код:
Это функция переводит тексты с помощью Google Translate. Проблема заключается в конвертировании спец. символов, в частности затрагивающих html теги.
Например, если отправляем
Цитата:
<b>Какой-то</b> <br />
<u>HTML-текст</u>
То получаем:
Цитата:
x3cbx3e Some x3c/ bx3e x3cbr /x3e rn x3cux3e HTML-text x3c/ ux3e
Подскажите, как декодировать спецсимволы.
Замени x3c и x3e на хтмл сущности str_replace()'ом )))