首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 呼叫 Google Translate API 實作翻譯功能(非官方介面)

     編輯:PHP 綜合知識

實作類別

<?php
header("Content-Type: text/html; charset=utf-8");

class Google_API_translator {
    public $opts = array("text" => "", "language_pair" => "en|it");
    public $out = "";

    function setOpts($opts) {
        if ($opts["text"] != "") $this->opts["text"] = $opts["text"];
        if ($opts["language_pair"] != "") $this->opts["language_pair"] = $opts["language_pair"];
    }

    function translate() {
        $this->out = "";
        $url = "https://translate.google.com/translate_t?langpair=" . urlencode($this->opts["language_pair"]) . "&;";
        $data = "text=" . urlencode($this->opts["text"]);

        $html = $this->postPage(array("url" => $url, "data" => $data));

        // 簡易解析回傳 HTML 中的翻譯結果
        $out = substr($html, strpos($html, " "));
        $out = substr($out, 29);
        $out = substr($out, 0, strpos($out, " "));
        $this->out = utf8_encode($out);
        return $this->out;
    }

    function postPage($opts) {
        $html = "";
        if ($opts["url"] != "" && $opts["data"] != "") {
            $ch = curl_init($opts["url"]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_HEADER, 1);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 15);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $opts["data"]);
            $html = curl_exec($ch);
            if (curl_errno($ch)) $html = "";
            curl_close($ch);
        }
        return $html;
    }
}
?>

使用範例

<?php
$g = new Google_API_translator();
$g->setOpts(array("text" => "Cjjer是天才", "language_pair" => "zh-CN|en"));
$g->translate();
echo $g->out; // 輸出: Cjjer is genius
?>

注意事項

  • 此為非官方、非穩定介面,Google 可能隨時變更頁面結構導致解析失效。
  • 生產環境強烈建議使用 Google Cloud Translation API(官方付費服務,支援 JSON/REST、配額管理、SLA)。
  • 解析邏輯極簡易(字串截取),實際部署需用 DOMDocument 或正則稳健提取。
  • 需開啟 curl 擴展並允許外部連線。

語言代碼對照

常用:zh-CN(簡中)、zh-TW(繁中)、en(英文)、ja(日文)、ko(韓文)、fr(法文)、de(德文)。完整列表請參考 Google 翻譯網頁介面。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved