2016-06-07 6 views
0

내가 문제가 있다는 것입니다 내가 <span class"notranslate">WORD</span>구글은 API v2를 번역 - 단어와 특수 문자

에 내가 그들을 포장하고있어 그래서 일부 단어를 제외해야 PHP

Google API V2를 사용하려고 해요를 건너 내 내가 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); 
.... 
+1

http_build_query는 이미 url 인코딩을 적용하므로 'urlencode ($ input)'은 중복됩니다. – Devon

+0

당신이 옳다고 생각합니다. 대답으로 추가합니다. 받아 들일 것입니다. – WonderLand

답변

1

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에 이중 인코딩입니다.