PHP调用必应翻译API示例源码

PHP调用必应翻译API示例源码,利用Azure平台Key免费调用翻译API。
要使用必应翻译API,首先要在Azure平台注册一个账号: https://portal.azure.com/#home 接下来创建文本翻译: https://portal.azure.com/#create/Microsoft.CognitiveServicesTextTranslation 在创建成功后可以拿到翻译所需的key。

调用示例


/**
 * 必应翻译
 * @des 使用Azure平台Key调用必应翻译API
 * @param string $inputStr  待翻译的文本
 * @param string $fromLanguage 文本原语言
 * @param string $toLanguage 文本要翻译的语言
 * @return string 译文
 */
 
class BingTranslate{

    const key = "";//必应Azure平台KEY,必须项

    public function getTranslate($inputStr,$fromLanguage,$toLanguage)
    {
	    $azure_key = self::key; 
        $accessToken = self::getAzureToken($azure_key); 
        $params = "text=" . urlencode($inputStr) . "&to=" . $toLanguage . "&from=" . $fromLanguage . "&appId=Bearer+" . $accessToken; 
        $translateUrl = "http://api.microsofttranslator.com/v2/Http.svc/Translate?$params"; 
        $curlResponse = self::curlRequest($translateUrl); 
        $translatedStr = simplexml_load_string($curlResponse,'SimpleXMLElement', LIBXML_NOCDATA); 
        $translatedStr = json_encode($translatedStr);
        $translatedStr = json_decode($translatedStr,true);
        return $translatedStr[0];
    }
    public  function getAzureToken($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: ' . $key 
            ) 
        ); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_HEADER, false); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
        $Response = curl_exec($ch); 
        curl_close($ch); 
        return $Response; 
    } 
    public 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; 
    } 
}

//使用

$translate = new BingTranslate;

$text = $translate->getTranslate("hello,alex","en","zh-cn");

var_dump($text);
← 苹果官网购买礼品卡给美区Apple ID充值
全网视频下载IOS捷径 →
二维码

微信扫码关注公众号