首先,你需要去有道翻譯API官網(wǎng)去申請key:http://fanyi.youdao.com/openapi?path=data-mode
得到key之后,就可以開始從該API獲得查詢的數(shù)據(jù)了(返回json還是XML,看個人喜好,這里我用的是json)?
下面我直接把responseMsg方法里,實現(xiàn)翻譯的代碼給出。
?public?function?responseMsg(){ ??? ?//get?post?data,?May?be?due?to?the?different?environments ??$postStr?=?$GLOBALS["HTTP_RAW_POST_DATA"];?//接收微信發(fā)來的XML數(shù)據(jù) ? ??//extract?post?data ?if(!empty($postStr)){ ????? ???//解析post來的XML為一個對象$postObj ???$postObj?=?simplexml_load_string($postStr,?'SimpleXMLElement',?LIBXML_NOCDATA); ??? ???$fromUsername?=?$postObj->FromUserName;?//請求消息的用戶 ???$toUsername?=?$postObj->ToUserName;?//"我"(訂閱號)的公眾號id ???$keyword?=?trim($postObj->Content);?//用戶發(fā)給訂閱號的消息內(nèi)容 ???$time?=?time();?//時間戳 ???$msgtype?=?'text';?//消息類型:文本 ???$textTpl?=?"<xml> ??<ToUserName><![CDATA[%s]]></ToUserName> ??<FromUserName><![CDATA[%s]]></FromUserName> ??<CreateTime>%s</CreateTime> ??<MsgType><![CDATA[%s]]></MsgType> ??<Content><![CDATA[%s]]></Content> ??</xml>"; ? ???if($postObj->MsgType?==?'event'){?//如果XML信息里消息類型為event ????if($postObj->Event?==?'subscribe'){?//如果是訂閱事件 ?????$contentStr?=?"歡迎訂閱misaka去年夏天!\n更多精彩內(nèi)容:http://blog.csdn.net/misakaqunianxiatian"; ?????$resultStr?=?sprintf($textTpl,?$fromUsername,?$toUsername,?$time,?$msgtype,?$contentStr); ?????echo?$resultStr; ?????exit(); ????} ???} ? ???$which?=?mb_substr($keyword,?0,?2,?'UTF-8');//獲取要返回什么樣的信息 ? ???if($which==?"翻譯"){?//如果要進行翻譯 ????$fanyi?=?$which; ????$search?=?str_replace($fanyi,?'',?$keyword);?//要翻譯的關(guān)鍵字 ? ????$key?=?"";?//在有道API申請的key ????$keyfrom?=?"";?//與key對應 ????$url?=?'http://fanyi.youdao.com/openapi.do?keyfrom='?.?$keyfrom?.?'&key='?.?$key?.?'&type=data&doctype=json&version=1.1&q='?.?urlencode($search);//調(diào)用有道翻譯API ????? ????$json?=?file_get_contents($url);//也可以用curl來獲取 ????$res?=?json_decode($json,?true); ? ????/** ?????*?以下從返回的數(shù)據(jù)中提取翻譯結(jié)果 ?????*/ ????$contentStr?=?'【查詢】'?.?$res['query']?.?"\n"; ????$contentStr?.=?"【翻譯】\n"?.?$res['translation'][0]?.?"\n"; ? ????$str?=?''; ????foreach($res['basic']['explains']?as?$v){ ?????$str?.=?$v?.?"\n"; ????} ????$contentStr?.=?"【基本釋義】\n"?.?$str; ? ? ????if(isset($res['web'])){ ? ?????foreach($res['web']?as?$kk=>$vv){ ??????sort($vv); ??????$res['web'][$kk]?=?$vv;?//調(diào)節(jié)字段順序 ?????} ? ?????$str?=?''; ?????foreach($res['web']?as?$v){ ??????foreach($v?as?$k2=>$v2){ ???????if($k2?==?0){ ????????$str?.=?"【".?$v2?."】\n"; ???????}else{ ????????foreach($v2?as?$v3){ ?????????$str?.=?$v3?."\n"; ????????} ???????} ??????} ?????} ?????$contentStr?.=?"【網(wǎng)絡釋義】\n"?.?$str;????? ????} ? ????$resultStr?=?sprintf($textTpl,?$fromUsername,?$toUsername,?$time,?$msgtype,?$contentStr); ????echo?$resultStr; ????exit();? ? ???}
注:關(guān)注的訂閱號返回的信息里要換行,要使用“\n”。在你的網(wǎng)站空間里,將你的代碼修改一下,就可以給訂閱號發(fā)送比如“翻譯漢堡包”,訂閱號會調(diào)用有道的API來返回翻譯結(jié)果,可以中英文互譯,也可以是句子。
Atas ialah kandungan terperinci PHP微信開發(fā)之有道翻譯實例代碼. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)