繁体   English   中英

如何使用PHP对多个字符串进行Google Translate REST API调用

[英]How to make a Google Translate REST API call in PHP for multiple strings

我正在遵循Google Translation API的文档,特别是针对将要translate的值接受一个或多个参数qtranslate方法以及接受要转换值的语言的参数target (s)英寸。

我有一个PHP函数可以调用REST API,并且可以正常工作:

function google_translate() {
    $api_key = 'my api key';
    $url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key;

    $form = [
        'q' => 'Hello World!',
        'target' => 'fr',
    ];

    $ch = curl_init( $url );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, $form );

    $response = curl_exec( $ch );

    curl_close( $ch );

    $response = json_decode( $response );
    var_dump( $response );
}
google_translate();

这很好用,但是文档指出您可以通过简单地使用多个q参数来提供其他字符串。 我已经在不使用PHP的REST客户端上进行了尝试,并且可以在同一调用中使用不同的字符串值提供多个q参数,并且返回所有参数的翻译,但是,我不知道如何使用PHP来实现此功能,因为PHP数组只能包含唯一键。

我该如何重做我的函数,以便字符串转换只需要打一个电话,而不必打多个电话? 任何帮助表示赞赏!

您是否尝试在查询字符串中添加q?

<?php
$apiKey = 'Moo!';
$text = 'Hello world!';
$url = 'https://www.googleapis.com/language/translate/v2?key=' . $apiKey . '&q=' . rawurlencode($text) . '&source=en&target=fr';

$handle = curl_init($url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($handle);                 
$responseDecoded = json_decode($response, true);
curl_close($handle);

echo 'Source: ' . $text . '<br>';
echo 'Translation: ' . $responseDecoded['data']['translations'][0]['translatedText'];

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM