


PHP WeChat public platform development - translation function development_PHP tutorial
[PHP WeChat public platform development series]
01. Configure WeChat interface
02. Public platform sample code analysis
03. Subscription event (subscribe) processing
04. Development of simple reply function
05. Weather forecast function development
06. Translation function development
1. Introduction
The previous article introduced the development of the weather forecast function of the WeChat public platform and realized the first practical application of the WeChat public platform. In the next article, we will briefly develop the WeChat translation function for readers refer to.
2. Idea analysis
The idea of querying the weather is similar to the previous article. First, the message sent by the user must be judged to determine whether the message contains the "translation" keyword. If it does, extract the content to be translated, and then call the open translation API on the Internet. Related translations.
3. Translation API Analysis
There are many translation APIs on the Internet, and you can choose one according to your needs. Here we choose Youdao Translation API and Baidu Translation API, which are widely used and have relatively good translation functions. The relevant information of these two APIs will be analyzed below.
3.1 Youdao Translation API
3.1.1 API address: http://fanyi.youdao.com/openapi
Note: The API interface provided by Youdao, during the following test, the json data format returned is incorrect. Check the information online and the address that can be translated correctly is http://fanyi.youdao.com/fanyiapi , pay attention to this.
3.1.2 Apply for key
Fill in the relevant information as required. This information will be used below, so please fill it in carefully and truthfully.
After the application is completed, the API key and keyfrom will be generated below, which will be used when using the API.
3.1.3 API usage examples
3.1.4 Data format
a. xml format
http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=xml&version=1.1&q=Here is Youdao Translation API

<?xml version="1.0" encoding="UTF-8"?> <youdao-fanyi> <errorCode>0</errorCode> <!-- 有道翻译 --> <query><![CDATA[这里是有道翻译API]]></query> <translation> <paragraph><![CDATA[Here is the youdao translation API]]></paragraph> </translation> </youdao-fanyi>

b. json format
http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=json&version=1.1&q=Translation

{ "errorCode":0 "query":"翻译", "translation":["translation"], // 有道翻译 "basic":{ // 有道词典-基本词典 "phonetic":"fān yì", "explains":[ "translate", "interpret" ] }, "web":[ // 有道词典-网络释义 { "key":"翻译", "value":["translator","translation","translate","Interpreter"] }, {...} ] }

3.2 Baidu Translation API
3.2.1 API address: http://openapi.baidu.com/public/2.0/bmt/translate
3.2.2 Get api key
The authorized API key obtained by developers registered on Baidu Connection Platform. For details, please refer to: http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6 %96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5/%E5 %85%A5%E9%97%A8%E6%8C%87%E5%8D%97
3.2.3 API usage examples
3.2.4 Data format
The data format of Baidu Translation API response is a standard JSON string corresponding to a UTF-8 encoded PHP array.
{ “from”:”zh”, “to”:”en”, “trans_result”:[] }
trans_result is an array, each {} is a paragraph, and the structure is as follows:
trans_result: [ {}, {}, {} ]
The paragraph result is an item in the trans_result array:
{ “src”:””, “dst”:”” }
Paragraph result description:
The form after json_decode:

{ "from": "en", "to": "zh", "trans_result": [ { "src": "today", "dst": "今天" } ] }

4. Keyword judgment and reading of content to be translated
The format of the translation message is "translation + content to be translated", so first intercept the first two words to determine whether they are the "translation" keyword.
Use the PHP function mb_substr() to intercept. The usage of this function has been discussed in the previous article and will not be repeated here.
$str_trans = mb_substr($keyword,0,2,"UTF-8");
Start intercepting from the beginning of the message, intercept two characters, and then determine whether it is the "translation" keyword.
$str_valid = mb_substr($keyword,0,-2,"UTF-8");
Determine whether to enter only the word "translation". If there is no content to be translated, the entered message will not be correct.
Next, extract the content to be translated:
$word = mb_substr($keyword,2,220,"UTF-8");
从消息的开头第3个字符开始截取,截取202个字符,截取出来的即为待翻译内容。
接着调用函数进行翻译。
//调用有道词典 $contentStr = $this->youdaoDic($word); //调用百度词典 $contentStr = $this->baiduDic($word);
五、具体实现
5.1 有道翻译API
数据接口:
http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=要翻译的文本
将上面的keyfrom 和key换成上面申请的内容,然后选择doctype,再输入要翻译的文本,就可以调用有道翻译API 进行翻译了。
有道翻译提供了三种数据格式,这里我们只讲解两种,即xml 和json。
5.1.1 xml 格式
关键代码如下:

public function youdaoDic($word){ $keyfrom = "orchid"; //申请APIKEY 时所填表的网站名称的内容 $apikey = "YourApiKey"; //从有道申请的APIKEY //有道翻译-xml格式 $url_youdao = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.$keyfrom.'&key='.$apikey.'&type=data&doctype=xml&version=1.1&q='.$word; $xmlStyle = simplexml_load_file($url_youdao); $errorCode = $xmlStyle->errorCode; $paras = $xmlStyle->translation->paragraph; if($errorCode == 0){ return $paras; }else{ return "无法进行有效的翻译"; } }

说明:
$xmlStyle = simplexml_load_file($url_youdao); // PHP 函数,将XML 文档载入对象中。
$errorCode = $xmlStyle->errorCode; // 获取错误码
$paras = $xmlStyle->translation->paragraph; // 获取翻译内容
5.1.2 json 格式
关键代码如下:

public function youdaoDic($word){ $keyfrom = "orchid"; //申请APIKEY时所填表的网站名称的内容 $apikey = "YourApiKey"; //从有道申请的APIKEY //有道翻译-json格式 $url_youdao = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.$keyfrom.'&key='.$apikey.'&type=data&doctype=json&version=1.1&q='.$word; $jsonStyle = file_get_contents($url_youdao); $result = json_decode($jsonStyle,true); $errorCode = $result['errorCode']; $trans = ''; if(isset($errorCode)){ switch ($errorCode){ case 0: $trans = $result['translation']['0']; break; case 20: $trans = '要翻译的文本过长'; break; case 30: $trans = '无法进行有效的翻译'; break; case 40: $trans = '不支持的语言类型'; break; case 50: $trans = '无效的key'; break; default: $trans = '出现异常'; break; } } return $trans; }

说明:
$jsonStyle = file_get_contents($url_youdao); // 把整个文件读入一个字符串中
$result = json_decode($jsonStyle,true); // 对JSON 格式的字符串进行编码
$errorCode = $result['errorCode']; // 获取错误码
$trans = $result['translation']['0']; // 获取翻译结果
5.2 百度翻译API
百度翻译API提供UTF-8编码的PHP数组对应的标准JSON字符串,而且提供了 中->英,中->日,英->中,日->中 四种互译,比有道翻译多了一种。
关键代码如下:

//百度翻译 public function baiduDic($word,$from="auto",$to="auto"){ //首先对要翻译的文字进行 urlencode 处理 $word_code=urlencode($word); //注册的API Key $appid="YourApiKey"; //生成翻译API的URL GET地址 $baidu_url = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=".$appid."&q=".$word_code."&from=".$from."&to=".$to; $text=json_decode($this->language_text($baidu_url)); $text = $text->trans_result; return $text[0]->dst; } //百度翻译-获取目标URL所打印的内容 public function language_text($url){ if(!function_exists('file_get_contents')){ $file_contents = file_get_contents($url); }else{ //初始化一个cURL对象 $ch = curl_init(); $timeout = 5; //设置需要抓取的URL curl_setopt ($ch, CURLOPT_URL, $url); //设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); //在发起连接前等待的时间,如果设置为0,则无限等待 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); //运行cURL,请求网页 $file_contents = curl_exec($ch); //关闭URL请求 curl_close($ch); } return $file_contents; }

说明:
这里包含了两个函数,baiduDic() 和 language_text()。
baiduDic() 函数:
$word_code=urlencode($word); // 首先对要翻译的文字进行 urlencode 处理
$text=json_decode($this->language_text($baidu_url)); // 调用language_text() 函数获取目标URL所打印的内容,然后对JSON 格式的字符串进行编码
$text = $text->trans_result; //获取翻译结果数组
return $text[0]->dst; //取第一个数组的dst 结果。
language_text() 函数:
判断file_get_contents() 函数是否存在,如果存在,则使用该函数获取URL内容;如果不存在,则使用cURL 工具获取URL内容。具体参见代码。
六、测试
有道翻译-xml 格式:
有道翻译-json 格式:
百度翻译:

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

In PHP, you can effectively prevent CSRF attacks by using unpredictable tokens. Specific methods include: 1. Generate and embed CSRF tokens in the form; 2. Verify the validity of the token when processing the request.

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

The future of PHP will be achieved by adapting to new technology trends and introducing innovative features: 1) Adapting to cloud computing, containerization and microservice architectures, supporting Docker and Kubernetes; 2) introducing JIT compilers and enumeration types to improve performance and data processing efficiency; 3) Continuously optimize performance and promote best practices.

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHP is suitable for web development, with simple syntax and high execution efficiency. 2. Python is suitable for data science and machine learning, with concise syntax and rich libraries.

PHP remains important in modern web development, especially in content management and e-commerce platforms. 1) PHP has a rich ecosystem and strong framework support, such as Laravel and Symfony. 2) Performance optimization can be achieved through OPcache and Nginx. 3) PHP8.0 introduces JIT compiler to improve performance. 4) Cloud-native applications are deployed through Docker and Kubernetes to improve flexibility and scalability.
