1

以下に示すように、関数 translate を使用します。テキストには多くの
タグがあり、翻訳後に \u003cbr / に変更されます。

例: Super Preis - Leistungsverhältnis.

Das bekommen Sie nur bei uns !

スーパープライス - 。Geld \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 に答える