【问题标题】:Google Translate API v2 - skip words and special characterGoogle Translate API v2 - 跳过单词和特殊字符
【发布时间】:2016-10-08 00:38:15
【问题描述】:

我正在尝试将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);
....

【问题讨论】:

  • http_build_query 已经应用了 url 编码,所以 urlencode($input) 是多余的。
  • 我认为你是对的 :) 添加它作为答案我会接受它

标签: php google-translate url-encoding


【解决方案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 上的双重编码。

【讨论】:

    猜你喜欢
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多