記得,在先前與朋友聚會討論,交流知識時,有位提出了一個問題,假若對方來瀏覽網頁,那該如何判斷對方是哪個使用語系的?!
這個嗎...瞬間有點棘手的感覺,但最後有人提出找到的資料,說是運用$_SERVER['HTTP_ACCEPT_LANGUAGE']此語法去抓取對方的瀏覽器語系
$_SERVER是屬於PHP裡超全局變數其中之一,$_SERVER包含了標頭訊息(header)、路徑(path)、以及腳本位置(script locations)等等訊息
通常最常用的有:
取得訪客IP位置:$_SERVER['REMOTE_ADDR']
取得訪客作業系統及瀏覽器類型:$_SERVER['HTTP_USER_AGENT']
判斷瀏覽器語系:$_SERVER['HTTP_ACCEPT_LANGUAGE']
取得網頁當前域名:$_SERVER['HTTP_HOST']加上取得訪問此頁面所需的URI:$_SERVER['REQUEST_URI']等組合
詳細的內容與各參數的說明都在官網:http://php.net/manual/en/reserved.variables.server.php
連結最下方官方還很貼心的把語法都寫出來了,只要複製到自己環境下即可執行
而今天要說的是,如何判斷對方瀏覽器是使用哪個語系的,會使用到$_SERVER['HTTP_ACCEPT_LANGUAGE']及strtok()函式
strtok()函式是把字串分割為更小的字串並擷取回傳
使用方法:strtok ($str, $token)
(參考資料:http://php.net/manual/en/function.strtok.php)
實際來try一遍,程式碼如下:
<?php
$browser_lang=$_SERVER['HTTP_ACCEPT_LANGUAGE'];
echo "您的瀏覽器語系是:".$browser_lang;
echo "<br />";
if(strtok($_SERVER['HTTP_ACCEPT_LANGUAGE'], ',')=='zh-TW') {
echo "Taiwan Very Good~~";
}
?>
輸出畫面如下圖所示:
(補充:那時是在想依語言提供網站,但如今感覺還是添加Google的網站翻譯工具會比較省時省工(雖然翻的...XD)
Google網站翻譯工具:http://translate.google.com/manager/website/)