【问题标题】:Get translation from Google Translate API as PHP variable从 Google Translate API 获取翻译作为 PHP 变量
【发布时间】:2018-05-29 19:03:09
【问题描述】:

我正在尝试从 PHP 中的 Google Translate REST API 获取翻译文本。响应为 JSON 格式,如下所示:

{
  "data": {
    "translations": [
      {
        "translatedText": "translated text which I want to get",
        "detectedSourceLanguage": "en"
      }
    ]
  }
}

我想知道如何将其提取为 PHP 变量?我当前的代码是这样,但它不起作用:

$ownwords = $mysqli->real_escape_string($_GET['ownwords']);

$geoownwordsapiurl = "https://translation.googleapis.com/language/translate/v2?key=SOMEVALIDAPIKEY&q={$ownwords}&target=en";

$geoownwords = json_decode(file_get_contents($geoownwordsapiurl), true);

foreach ($geoownwords as $geoownword) {
    $translatedwords = $geoownword['data']['translations']['translatedText'];
}

echo $translatedwords;

【问题讨论】:

  • “它不起作用”是什么意思?你有错误吗?结果错误?没有结果?
  • @ᴄʀᴏᴢᴇᴛ 不是一个错误。当我运行测试 PHP 文件时,它是空白的
  • 跳过foreach。你 foreach 一个数组,但仍然使用直接路径。
  • @Andreas 那么我该如何跳过 foreach?
  • 只删除以foreach开头的行,以及}。然后用 geoownwords 替换 geoownword

标签: php rest google-translate


【解决方案1】:

不确定你想在循环中做什么(我只是在下面构建了一个字符串),但你需要循环translations,假设可以有多个:

$translatedwords = '';

foreach($geoownwords['data']['translations'] as $geoownword) {
    $translatedwords .= $geoownword['translatedText'];
}
echo $translatedwords;

如果只有一个:

echo $geoownwords['data']['translations'][0]['translatedText'];

【讨论】:

  • 现在 echo 是“数组”,仅此而已。只是数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-21
  • 2013-12-28
  • 1970-01-01
  • 2019-07-10
相关资源
最近更新 更多