简体转繁体
使用场景:
app接口需要对台湾用户返回繁体, api是php开发的, 由于服务器原因不能安装上php的opencc扩展, 所以使用了nodejs 来提供一个api供php调用
首先安装好nodejs跟opencc扩展
附: opencc github GitHub - BYVoid/OpenCC: Conversion between Traditional and Simplified Chinese
编写代码
node.js
const http = require('http')
const OpenCC = require('opencc');
const converter = new OpenCC('s2t.json');
const server = http.createServer()server.on('request', function (request, response,body) {console.log('收到客户端的请求了,请求路径是:' + request.url)response.setHeader('Content-Type','text/plain;charset=utf-8');let post = '';request.on('data', function(chunk){ post += chunk;});request.on('end', function(){post = post.toString();converter.convertPromise(post).then((converted)=>{//response.write(converted)response.end(converted);})});})server.listen('8000', ()=> {console.log('8000端口已启动~')})
php 调用接口代码
<?php
namespace app;
use GuzzleHttp\Client;class OpenCC
{public function transform($string){try {$client = new Client(['base_uri' => 'http://172.xxx.xxx.xxx:8000', 'timeout' => 3]);$response = $client->get('/', ['body' => $string]);if ($response->getStatusCode() == 200) {return $response->getBody()->getContents();} else {throw new \Exception('convert fail');}} catch (\Exception $e) {Log::write($e->getMessage());}return $string;} }
启动node.js
放开8000端口
调用预览