PHP 最完美調用百度翻譯接口代碼示例 (原)


php調用百度翻譯最新接口代碼

問       題:寫的過程遇到了一個問題,url拼接好的原翻譯內容,appid,sign的地址直接輸出到瀏覽器可以打開看到翻譯后的返回值,但是各種curl,file_get_contents()都不行,獲取到的內容是空.

開發過程:我剛開始是拼好的地址輸出到瀏覽器,然后復制url地址直接瀏覽器打開,能看到翻譯后的內容,如下. 但是我接着curl請求這個地址獲取內容就一直失敗.

 

錯誤原因: url地址里面拼接的帶中文參數值的拼接到url前中文值要先 urlencode,這樣拼接好的url直接curl_get()或者file_get_contents()就沒毛病了.我這邊寫的不管是中文轉英文還是英文轉中文都加了urlencode()要翻譯的參數.

問題講述完畢,上代碼~

function language($value,$from="en",$to="zh")
    {
         $value_code = $value; 
         $appid = "20181009000******"; //您注冊的API Key
         $key = "_ZdHGxOm*********"; //密鑰
         $salt = rand(1000000000,9999999999); //隨機數
         $sign = md5($appid.$value_code.$salt.$key); //簽名
         $value_code = urlencode($value_code);
         //生成翻譯API的URL 
         $languageurl = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=$value_code&appid=$appid&salt=$salt&from=$from&to=$to&sign=$sign";
         $text = json_decode($this->language_text($languageurl));
         $lan = $text->trans_result;
         $result = '';
         foreach ($lan as $k => $v)
          {
               $result .= ucwords($v->dst) ."\n";
          }
          return $result;
    }
function language_text($reqURL)
    {
        $ch = curl_init($reqURL);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
        $result = curl_exec($ch);
        if($result){
            curl_close($ch);
            return $result;
        } else {
            $error = curl_errno($ch);
            curl_close($ch);
            return ("curl出錯,錯誤碼:$error");
        }
    }
//調用代碼
    $val = 'I love you';
   $from = 'EN';
    $to = 'ZH';
    $result = language($val,$from,$to);
    echo $result;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM