検索
ホームページバックエンド開発PHPチュートリアルWeChatパブリックプラットフォーム開発(6)翻訳機能開発_PHPチュートリアル

WeChatパブリックプラットフォーム開発(6)翻訳機能開発_PHPチュートリアル

Jul 20, 2016 am 11:14 AM
優れた関数天気予報成し遂げるプラットホーム開発する微信記事翻訳する

前の記事では、WeChatパブリックプラットフォームの天気予報機能の開発とWeChatパブリックプラットフォームの最初の実用化について紹介しました。次の記事では、読者の参考のためにWeChat翻訳機能を簡単に開発します。

2. アイデア分析

天気をクエリするという考え方は前の記事と似ています。まず、ユーザーが送信したメッセージを判断して、メッセージに「翻訳」キーワードが含まれているかどうかを判断する必要があります。含まれている場合は、そのコンテンツを抽出します。翻訳してから、ネットワーク Open Translation API を呼び出して、関連する翻訳を取得します。

インターネット上には多くの翻訳 API があり、ニーズに応じて選択できます。ここでは、広く使用されており、比較的優れた翻訳機能を備えている Youdao Translation API と Baidu Translation API を選択します。これら 2 つの API の関連情報を以下で分析します。

3.1 Youdao翻訳API

3.1.1 APIアドレス: http://fanyi.youdao.com/openapi

注: Youdao が提供する API インターフェイスでは、次のテスト中に返される JSON データ形式が正しくありません。オンラインで情報を確認してください。正しく翻訳できるアドレスは http://fanyi.youdao.com/fanyiapi です。知らせ。

3.1.2 キーを申請する

必要に応じて関連情報を入力してください。この情報は以下で使用されますので、慎重かつ真実に入力してください。

申請後、以下にAPI利用時に使用するAPIキーとkeyfromが生成されます。

3.1.3 APIの使用例

3.1.4 データ形式

a.xml形式

http://fanyi.youdao.com/openapi.do?keyfrom=orchid&key=1008797533&type=data&doctype=&version=1.1&q=Youdao翻訳APIはこちらです

リーリー

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

リーリー

3.2 Baidu翻訳API

3.2.1 APIアドレス: http://openapi.baidu.com/public/2.0/bmt/translate

3.2.2 APIキーを取得する

Baidu Connection Platform への登録後に開発者が取得した承認された API キー 詳細については、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の使用例

Baidu Translation API 応答のデータ形式は、UTF-8 でエンコードされた PHP 配列に対応する標準の JSON 文字列です。

リーリー

trans_result は配列であり、各 {} は段落であり、構造は次のとおりです:

リーリー

段落の結果は trans_result 配列内の項目です:

リーリー

段落結果の説明:

json_decode後のフォーム:

リーリー

翻訳メッセージの形式は「翻訳 + 翻訳対象コンテンツ」であるため、最初の 2 つの単語をインターセプトして「翻訳」キーワードかどうかを判断します。

PHP 関数 mb_substr() を使用してインターセプトします。この関数の使用法については前の記事で説明したため、ここでは繰り返しません。

メッセージの先頭から開始して 2 文字を切り取り、それが「翻訳」キーワードであるかどうかを判断します。

「翻訳」という単語のみを入力するかどうかを決定します。この方法で入力すると、翻訳する内容がなく、入力されたメッセージが正しくなくなります。

次に、翻訳するコンテンツを抽出します。

メッセージの先頭の 3 文字目から開始して 202 文字をインターセプトし、インターセプトした内容が翻訳対象のコンテンツになります。

次に、翻訳用の関数を呼び出します。

リーリー

5.1 Youdao翻訳API

データインターフェース:

http://fanyi.youdao.com/openapi.do?keyfrom=<span <</span><span keyfrom</span><span ></span><span &key</span>=<span <</span><span key</span><span ></span><span &type</span>=data<span &doctype</span>=<span <</span><span doctype</span><span ></span><span &version</span>=1.1<span &q</span>=要翻译的文本

5.1.1 xml 格式

关键代码如下:

<span public</span> <span function</span> youdaoDic(<span $word</span><span ){

        </span><span $keyfrom</span> = "orchid";    <span //</span><span 申请APIKEY 时所填表的网站名称的内容</span>
        <span $apikey</span> = "YourApiKey";  <span //</span><span 从有道申请的APIKEY
        
        //有道翻译-xml格式</span>
        <span $url_youdao</span> = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.<span $keyfrom</span>.'&key='.<span $apikey</span>.'&type=data&doctype=xml&version=1.1&q='.<span $word</span><span ;
        
        </span><span $xmlStyle</span> = <span simplexml_load_file</span>(<span $url_youdao</span><span );
        
        </span><span $errorCode</span> = <span $xmlStyle</span>-><span errorCode;

        </span><span $paras</span> = <span $xmlStyle</span>->translation-><span paragraph;

        </span><span if</span>(<span $errorCode</span> == 0<span ){
            </span><span return</span> <span $paras</span><span ;
        }</span><span else</span><span {
            </span><span return</span> "无法进行有效的翻译"<span ;
        }<br />}</span>

说明:

$xmlStyle = simplexml_load_file($url_youdao);  // PHP 函数,将XML 文档载入对象中。

$errorCode = $xmlStyle->errorCode;  // 获取错误码

$paras = $xmlStyle->translation->paragraph;  // 获取翻译内容

5.1.2 json 格式

关键代码如下:

    <span public</span> <span function</span> youdaoDic(<span $word</span><span ){

        </span><span $keyfrom</span> = "orchid";    <span //</span><span 申请APIKEY时所填表的网站名称的内容</span>
        <span $apikey</span> = "YourApiKey";  <span //</span><span 从有道申请的APIKEY
        
        //有道翻译-json格式</span>
        <span $url_youdao</span> = 'http://fanyi.youdao.com/fanyiapi.do?keyfrom='.<span $keyfrom</span>.'&key='.<span $apikey</span>.'&type=data&doctype=json&version=1.1&q='.<span $word</span><span ;
        
        </span><span $jsonStyle</span> = <span file_get_contents</span>(<span $url_youdao</span><span );

        </span><span $result</span> = json_decode(<span $jsonStyle</span>,<span true</span><span );
        
        </span><span $errorCode</span> = <span $result</span>['errorCode'<span ];
        
        </span><span $trans</span> = ''<span ;

        </span><span if</span>(<span isset</span>(<span $errorCode</span><span )){

            </span><span switch</span> (<span $errorCode</span><span ){
                </span><span case</span> 0:
                    <span $trans</span> = <span $result</span>['translation']['0'<span ];
                    </span><span break</span><span ;
                </span><span case</span> 20:
                    <span $trans</span> = '要翻译的文本过长'<span ;
                    </span><span break</span><span ;
                </span><span case</span> 30:
                    <span $trans</span> = '无法进行有效的翻译'<span ;
                    </span><span break</span><span ;
                </span><span case</span> 40:
                    <span $trans</span> = '不支持的语言类型'<span ;
                    </span><span break</span><span ;
                </span><span case</span> 50:
                    <span $trans</span> = '无效的key'<span ;
                    </span><span break</span><span ;
                </span><span default</span>:
                    <span $trans</span> = '出现异常'<span ;
                    </span><span break</span><span ;
            }
        }
        </span><span return</span> <span $trans</span><span ;
        
    }</span>

说明:

把整个文件读入一个字符串中

$result = json_decode($jsonStyle,true);  // 对JSON 格式的字符串进行编码

$errorCode = $result['errorCode'];  // 获取错误码

$trans = $result['translation']['0'];  // 获取翻译结果

5.2 百度翻译API

百度翻译API提供UTF-8编码的PHP数组对应的标准JSON字符串,而且提供了 中->英,中->日,英->中,日->中 四种互译,比有道翻译多了一种。

关键代码如下:

    <span //</span><span 百度翻译</span>
    <span public</span> <span function</span> baiduDic(<span $word</span>,<span $from</span>="auto",<span $to</span>="auto"<span ){
        
        </span><span //</span><span 首先对要翻译的文字进行 urlencode 处理</span>
        <span $word_code</span>=<span urlencode</span>(<span $word</span><span );
        
        </span><span //</span><span 注册的API Key</span>
        <span $appid</span>="<span YourApiKey</span>"<span ;
        
        </span><span //</span><span 生成翻译API的URL GET地址</span>
        <span $baidu_url</span> = "http://openapi.baidu.com/public/2.0/bmt/translate?client_id=".<span $appid</span>."&q=".<span $word_code</span>."&from=".<span $from</span>."&to=".<span $to</span><span ;
        
        </span><span $text</span>=json_decode(<span $this</span>->language_text(<span $baidu_url</span><span ));

        </span><span $text</span> = <span $text</span>-><span trans_result;

        </span><span return</span> <span $text</span>[0]-><span dst;
    }
        
    </span><span //</span><span 百度翻译-获取目标URL所打印的内容</span>
    <span public</span> <span function</span> language_text(<span $url</span><span ){

        </span><span if</span>(!<span function_exists</span>('file_get_contents'<span )){

            </span><span $file_contents</span> = <span file_get_contents</span>(<span $url</span><span );

        }</span><span else</span><span {
                
            </span><span //</span><span 初始化一个cURL对象</span>
            <span $ch</span> =<span  curl_init();

            </span><span $timeout</span> = 5<span ;

            </span><span //</span><span 设置需要抓取的URL</span>
            curl_setopt (<span $ch</span>, CURLOPT_URL, <span $url</span><span );

            </span><span //</span><span 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上</span>
            curl_setopt (<span $ch</span>, CURLOPT_RETURNTRANSFER, 1<span );

            </span><span //</span><span 在发起连接前等待的时间,如果设置为0,则无限等待</span>
            curl_setopt (<span $ch</span>, CURLOPT_CONNECTTIMEOUT, <span $timeout</span><span );

            </span><span //</span><span 运行cURL,请求网页</span>
            <span $file_contents</span> = curl_exec(<span $ch</span><span );

            </span><span //</span><span 关闭URL请求</span>
            curl_close(<span $ch</span><span );
        }

        </span><span return</span> <span $file_contents</span><span ;
    }</span>

说明:

baiduDic() 函数:

language_text($baidu_url));  // 调用language_text() 函数获取目标URL所打印的内容,然后对JSON 格式的字符串进行编码

trans_result;  //获取翻译结果数组

dst;  //取第一个数组的dst 结果。

language_text() 函数:

有道翻译-xml 格式:

有道翻译-json 格式:

百度翻译:

注意:该翻译功能放在SAE上能够正常运行,但在BAE上运行不成功,各位有兴趣自行测试一下。

请到QQ群213260412共享里下载使用。

请关注 卓锦苏州 微信公众帐号,卓锦苏州 基于SAE 平台开发,针对于主流的微信功能进行开发测试。

您可以关注 卓锦苏州 公众帐号进行功能测试,以及获取新的应用开发。

1. 登录微信客户端,朋友们 -> 添加朋友 -> 搜号码 -> zhuojinsz,查找并关注。

2. 扫描二维码:

卓锦苏州功能列表。

 


We Believe, Great People Share Knowledge...

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/440249.html技術記事前回の記事では、WeChatパブリックプラットフォームの天気予報機能の開発を紹介し、WeChatパブリックプラットフォームの最初の実用化を実現しました。次の記事では、WeChatを翻訳していきます...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?PHPは、オブジェクトのクローニング(クローンキーワード)と__Clone Magicメソッドをどのように処理しますか?Apr 17, 2025 am 12:24 AM

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHP対Python:ユースケースとアプリケーションPHP対Python:ユースケースとアプリケーションApr 17, 2025 am 12:23 AM

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境