<?php // 28.04.17 AZURE Text Translation API 2017 (V2) - Working Example PHP Code - Cognitive Services with cURL https://www.aw6.de/azure/
// Get your key from: http://docs.microsofttranslator.com/text-translate.html
// Put your parameters here:
$azure_key = "KEY_1"; // !!! TODO: secret key here !!!
$fromLanguage = "en"; // Translator Language Codes: https://msdn.microsoft.com/en-us/library/hh456380.aspx
$toLanguage = "de";
$inputStr = "AZURE - The official documentation and examples for PHP were useless when I made this example.";
// and leave the rest of the code as it is ;-)
// Get the AZURE token
function getToken($azure_key)
{
$url = 'https://api.cognitive.microsoft.com/sts/v1.0/issueToken';
$ch = curl_init();
$data_string = json_encode('{body}');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string),
'Ocp-Apim-Subscription-Key: ' . $azure_key
)
);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$strResponse = curl_exec($ch);
curl_close($ch);
return $strResponse;
}
// Request the translation
function curlRequest($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$curlResponse = curl_exec($ch);
curl_close($ch);
return $curlResponse;
}
// Get the translation
$accessToken = getToken($azure_key);
$params = "text=" . urlencode($inputStr) . "&to=" . $toLanguage . "&from=" . $fromLanguage . "&appId=Bearer+" . $accessToken;
$translateUrl = "http://api.microsofttranslator.com/v2/Http.svc/Translate?$params";
$curlResponse = curlRequest($translateUrl);
$translatedStr = simplexml_load_string($curlResponse);
// Display the translated text on the web page:
echo "<p>From " . $fromLanguage . ": " . $inputStr . "<br>";
echo "To " . $toLanguage . ": " . $translatedStr . "<br>";
echo date("r") . "</p>";
?>
<!-- Change Log:
02.01.17 GitHub
04.01.17 $authHeader was surplus - Thanks Sandy
29.01.17 </p>, Link to Language codes in English
28.04.17 Line 36 ARRAY required: curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: text/xml")); // Thanks Carlos
-->