1

我使用函数翻译,如下所示。文中
标签较多,翻译后改为\u003cbr /。

示例:Super Preis - Leistungsverhältnis。

Das bekommen Sie nur bei uns !

超级大奖 - 。盖尔德 \u003cbr /\u003e U ons \u003cbr /\u003e

问题:如何防止文本
标签不被更改并在翻译后作为
标签保留。

function translate($text, $from = 'de', $to = 'nl'){
 $texto_traducri = urlencode($text);
 $query = "http://translate.google.nl/translate_a/t?client=t&text=$texto_traducri%0A%0A&hl=$from&sl=$from&tl=$to&multires=1&prev=enter&oc=5&ssel=3&tsel=6&sc=1";
 $response = file_get_contents(
    $query,
    null,
    stream_context_create(
        array(
            'http'=>array(
            'method'=>"GET",
            'header'=>"Referer: http://translate.google.nl/\r\n"
            )
        )
    )
);
$p_separador = strpos($response,'","');
$p_separador = strpos($response,"]]");
$s_previo = substr($response,3,($p_separador));
$a_previo = explode("],[",$s_previo);
$txt_sum = '';
    foreach($a_previo as $s_cadenaparcial){
        $s_cadenaparcial = str_replace("]", "", $s_cadenaparcial);
        $s_cadenaparcial = str_replace("[", "", $s_cadenaparcial);
        $a_cadena = explode('","',$s_cadenaparcial);
        $txt_sum.=substr($a_cadena[0],1);
        }
    $tagresult = $txt_sum;  

$tagresult = htmlspecialchars_decode($tagresult);

return $tagresult;
}
4

1 回答 1

0

\u003c并表示和\u003e的 unicode 值。<>

您可以简单地将它们转换回普通字符。

以下是如何执行此操作的示例:

<?
    function uconverter($matches) {
        return html_entity_decode('&#' . hexdec($matches[1]) . ';', ENT_COMPAT, 'UTF-8');
    }
    function decode_uchars($str) {
        return preg_replace_callback('/\\\\u([0-9A-Fa-f]{4})/', uconverter, $str);
    }


    $in = 'Super prijs - . Geld \u003cbr /\u003e U ons \u003cbr /\u003e';
    $out = decode_uchars($in); // Super prijs - . Geld <br /> U ons <br />

    echo $out;
?>
于 2013-04-05T19:19:01.143 回答