Google Translate API v2 — пропустите слова и специальные символы

Я пытаюсь использовать Google API V2 с PHP

Мне нужно исключить некоторые слова, поэтому я заключаю их в <span class"notranslate">WORD</span>

Проблема в том, что мой текст содержит некоторые специальные символы, поэтому я использую urlencode($input)

Проблема в том, что urlencode нарушает функциональность исключения слова …

Что я делаю не так?

пример

$url = "https://www.googleapis.com/language/translate/v2";
$params = array(
'key' => $helper->getConfigValue('google_api'),
'source' => $from,
'target' => $to, // NOTE for CHINESE zh-CN
'q' => urlencode($input),
);
$url .= '?' . http_build_query($params);

$handle = curl_init($url);
....

0

Решение

http_build_query уже применяет URL-кодировку, поэтому urlencode($input) избыточно

<?php
$str = '<span class="notranslate">WORD</span>';

$params = [
'single' => $str,
'double' => urlencode($str)
];
echo http_build_query($params);

Результаты в:

single=%3Cspan+class%3D%22notranslate%22%3EWORD%3C%2Fspan%3E
double=%253Cspan%2Bclass%253D%2522notranslate%2522%253EWORD%253C%252Fspan%253E

Обратите внимание на двойную кодировку на double,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]