iT邦幫忙

DAY 13
2

遭遇PHP之經驗分享系列 第 13

[鐵人賽Day13]$_SERVER簡述與判別瀏覽網站使用者瀏覽器的語系

記得,在先前與朋友聚會討論,交流知識時,有位提出了一個問題,假若對方來瀏覽網頁,那該如何判斷對方是哪個使用語系的?!
這個嗎...瞬間有點棘手的感覺,但最後有人提出找到的資料,說是運用$_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/)


上一篇
[鐵人賽Day12]PHP的簡寫標籤與使用方式
下一篇
[鐵人賽Day14]取得訪客IP方法與應用
系列文
遭遇PHP之經驗分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言