有没有人有过使用PHP CURL在POST方法上翻译HTML的Google翻译API v2的经验?
我从github尝试了几个代码和库,但没有一个代表我。我发现的是GET方法。
由于通过GET或查询字符串解析数据的限制,我无法发送大型HTML数据进行翻译。
我正在寻找可以使用CURL
转换缓冲数据的解决方案/片段答案 0 :(得分:8)
这是我的解决方案
$handle = curl_init();
if (FALSE === $handle)
throw new Exception('failed to initialize');
curl_setopt($handle, CURLOPT_URL,'https://www.googleapis.com/language/translate/v2');
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_POSTFIELDS, array('key'=> 'apikey', 'q' => 'Testing message', 'source' => 'en', 'target' => 'cs'));
curl_setopt($handle,CURLOPT_HTTPHEADER,array('X-HTTP-Method-Override: GET'));
$response = curl_exec($handle);
如果要在单个请求中发送更多数据,也可以使用POST来调用API。 POST正文中的q参数必须小于5K字符。要使用POST,必须使用X-HTTP-Method-Override标头告诉Translate API将请求视为GET(使用X-HTTP-Method-Override:GET)。