PHP calls Youdao Translation API to translate text online

» network technique » PHP calls Youdao Translation API to translate text online

Register Youdao Zhiyun and call Youdao translation resources online

PHP调用有道翻译API在线翻译文字-极客公园

preface

Youdao Zhiyun

The resources searched for Youdao Translation on the Internet are all the openapis of Youdao Get, but they are said to be invalid, but they can still be used after cloud drop testing, but they can't be used in large quantities, so Youdao Zhiyun is registered here.
PHP调用有道翻译API在线翻译文字-极客公园

There are only four products of Youdao Zhiyun, all of which are core products. Yunluo uses the translation function. Youdao, a newly registered user, is kind enough to give away 100 yuan. Considering the cost of the translation function is relatively cheap, it can still be used for a period of time.
PHP调用有道翻译API在线翻译文字-极客公园

Use code

Because there is an official PHP demo in Daozhiyun, we directly changed the demo slightly and used it directly

 //Youdao Translation function ydtranslate($query){ $app_key = '************';// Registered with Daozhiyun to obtain $sec_key = '********************';// Registered with Daozhiyun to obtain $api_url = ' http://openapi.youdao.com/api ';// You can use https $args = array( 'q' => $query, 'appKey' => $app_key, 'salt' => rand(10000,99999), 'from' => 'AUTO', 'to' => 'zh-CHS', ); $args['sign'] = buildSign($app_key, $query, $args['salt'], $sec_key); $ret = call($api_url, $args); //echo $ret; $ret = json_decode($ret, true)['translation'][0]; return $ret; } //Encryption function buildSign($appKey, $query, $salt, $secKey){ $str = $appKey . $ query . $ salt . $ secKey; $ret = md5($str); return $ret; } //Initiate network request function call($url, $args=null, $method="post", $testflag = 0, $timeout = 20, $headers=array()){ $ret = false; $i = 0; while($ret === false){ if($i > 1) break; if($i > 0){ sleep(1); } $ret = callOnce($url, $args, $method, false, $timeout, $headers); $i++; } return $ret; } function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = 20, $headers=array()){ $ch = curl_init(); if($method == "post"){ $data = convert($args); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_POST, 1); }else{ $data = convert($args); if($data){ if(stripos($url, "?") > 0){ $url .=  "&$data"; }else{ $url .=  "?$data"; } } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(!empty($headers)){ curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } if($withCookie){ curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE); } $r = curl_exec($ch); curl_close($ch); return $r; } function convert(&$args){ $data = ''; if (is_array($args)){ foreach ($args as $key=>$val){ if (is_array($val)){ foreach ($val as $k=>$v){ $data .= $ key.' ['.$k.']='.rawurlencode($v).'&'; } }else{ $data .= "$key=".rawurlencode($val). "&"; } } return trim($data, "&"); } return $args; }

Easy to use

 echo ydtranslate('I go to school');

Comparison with Google Translate

Here is just a passage I'm translating. See it for details.

Postscript

After using Youdao Translator, I looked at Baidu Translator and found that Baidu Translator's PHP demo is almost the same as Youdao Translator's PHP demo. It can be said that except for the calling api, it is basically the same.

Related Links

Youdao Zhiyun

--End--

Post reply

Your email address will not be disclosed. Required items have been used * tagging

2 Replies to "PHP calls Youdao translation API to translate text online"