返回列表 上一主題 發帖

6-2-4 瀏覽者的語言版本

6-2-4 瀏覽者的語言版本

6-2-4   瀏覽者的語言版本
「網路無國界,世界是一家」,您以為網路上的資訊有國別或地域的區分嗎?當然沒有!世界各國使用各種語言的網友都有可能光臨您的網站,以筆者的網站來說,有來自台灣、香港、中國大陸、甚至加拿大的網友來參觀,因此,為服務世界各國使用各種語言的網友,您可能將網站規劃成有多國語言的版本,當網友來參觀時,可自由選擇他適合的語言版本來瀏覽。
0.png
2011-4-19 18:15

圖6-14  語言選擇。

當世界各國使用各種語言的網友每次來到您的網站,如果網友第一次光臨網站請人家選擇適當的語言版本來瀏覽,這是無可厚非的,但網友若是再度光臨,您又要人家選擇一次語言版本來瀏覽,這太麻煩了,好像不是很好的待客之道,所以,我們可以利用Cookie來做記錄ㄚ,當網友第一次光臨時,請他選擇適當的語言版本來瀏覽,如上圖,而他再度光臨我們網站時,不需要再選擇一次語言版本,我們會直接轉向網頁到適合他的語文版本去。
1.png
2011-4-19 18:15

圖6-15  程式流程。

在本範例程式中,我們只需要一個Cookie,它的名稱是:「languagename」,它是用來記錄瀏覽者的語言版本,其值有下列三種可能:

  • big5:曾經來參觀過網站,而且,所選擇的語言版本為中文繁體。
  • gb:曾經來參觀過網站,而且,所選擇的語言版本為中文簡體。
  • 沒有Cookie變數:以前沒來過,是第一次來訪,必須選擇語言版本。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

身份判斷
當訪客進入您的首頁,我們第一件要做的事是先去確認Cookies「languagename」的值,如果Cookie「languagename」存在,則代表訪客曾經來過,接著才開始判斷Cookie「languagename」的值,如果其值為「big5」,代表訪客要瀏覽的是『中文繁體』版本的網頁,我們就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;而其值若是「gb」,代表訪客要瀏覽的是『中文簡體』版本的網頁,就將瀏覽位置轉向到『中文簡體』版本的網頁去。
  1. <?
  2. ob_start();
  3. //取得語言版本的Cookie變數值
  4. if (isset($_COOKIE["languagename"]))
  5. //決定該到何處去
  6. {
  7.   $languagename=$_COOKIE["languagename"];
  8.   if ($languagename=="big5")
  9.    {
  10.     header("Location: big5.php");
  11.    }
  12.   else
  13.    {
  14.     header("Location: gb.php");
  15.    }
  16. }
  17. ?>
複製代碼
在程式碼第8與第15行中,我們利用If判斷敘述去幫我們判斷語言版本Cookies「languagename」的值,如果「languagename」的值是「big5」,就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;若是「gb」,就直接將瀏覽位置轉向到『中文簡體』版本的網頁去。ㄚ!如果「languagename」的值不是「big5」或「gb」怎麼辦?那就不做任何動作,等待瀏覽者選擇適當的版本。
0.png
2011-4-19 18:17

圖6-16  網頁轉向。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

設定語言版本的Cookie
當網友第一次光臨時,我們會請他進行語言版本的設定,在網頁中我們放置了兩個語言版本的選擇圖片,並且為圖片加上了超鏈結依不同選擇連結到不同語言版本的網頁。
在不同語言版本的網頁中,我們加上了判斷語言版本Cookies「languagename」值的設定敘述,如果Cookies「languagename」的值是空字串,就將語言版本寫入Cookies「languagename」內,並將此Cookies值設定為使用後的日期起算,90天內都有效,以中文繁體網頁為例:
  1. <?
  2. ob_start();
  3. //取得語言版本的Cookie變數值,若無語言版本設定
  4. //將語言版本設為繁體中文,語言版本設定90天內有效
  5. if (!isset($_COOKIE["languagename"]))
  6.   {
  7.    setcookie("languagename","big5",time()+7776000);
  8.   }
  9. ?>
複製代碼
上例中,只有在Cookie變數languagename不存在,也就是在瀏覽器中沒有我們所需要的Cookies「languagename」時,才寫入Cookies!
in.php(首頁、語言版本判斷)
  1. <?
  2. ob_start();
  3. //取得語言版本的Cookie變數值
  4. if (isset($_COOKIE["languagename"]))
  5. //決定該到何處去
  6. {
  7.   $languagename=$_COOKIE["languagename"];
  8.   if ($languagename=="big5")
  9.    {
  10.     header("Location: big5.php");
  11.    }
  12.   else
  13.    {
  14.     header("Location: gb.php");
  15.    }
  16. }
  17. ?>

  18. <html>
  19. <head>
  20. <meta http-equiv="Content-Language" content="zh-tw">
  21. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  22. <title>網頁版本檢查</title>
  23. </head>
  24. <body background="bg.gif">
  25. <p align="center">
  26. <img border="0" src="twbtsb1.gif"></p>
  27. <p align="center">
  28. <img border="0" src="choose.gif"></p>
  29. <p align="center">
  30. <!-- 中文繁體的鏈結 -->
  31. <a href="big5.php">
  32. <img border="0" src="big5.gif"></a></p>
  33. <p align="center">
  34. <!-- 中文簡體的鏈結 -->
  35. <a href="gb.php">
  36. <img border="0" src="gb.gif"></a></p>
  37. </body>
  38. </html>
複製代碼
big5.php(繁體網頁、繁體版本設定)
  1. <?
  2. ob_start();
  3. //取得語言版本的Cookie變數值,若無語言版本設定
  4. //將語言版本設為繁體中文,語言版本設定90天內有效
  5. if (!isset($_COOKIE["languagename"]))
  6.   {
  7.    setcookie("languagename","big5",time()+7776000);
  8.   }
  9. ?>

  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  13. <title>中文繁體網頁</title>
  14. </head>
  15. <body background="bg.gif">
  16. <p>你好!!歡迎光臨麻辣學園</p>
  17. <p><font color="#0000FF" size="5"><b>BIG5碼繁體網頁</b></font></p>
  18. </body>
  19. </html>
複製代碼
gb.php(簡體網頁、簡體版本設定)
  1. <?
  2. ob_start();
  3. //取得語言版本的Cookie變數值,若無語言版本設定
  4. //將語言版本設為簡體中文,語言版本設定90天內有效
  5. if (!isset($_COOKIE["languagename"]))
  6.   {
  7.    setcookie("languagename","gb",time()+7776000);
  8.   }
  9. ?>

  10. <html>
  11. <head>
  12. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  13. <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
  14. <meta name="ProgId" content="FrontPage.Editor.Document">
  15. <title>中文簡體網頁</title>
  16. </head>
  17. <body background="mainbg.gif">
  18. <p>您好!!歡迎光臨麻辣學園</p>
  19. <p><font color="#008000" size="5"><b>GB碼簡體網頁</b></font></p>
  20. </body>
  21. </html>
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

如果改用萬國碼UTF8,是不是會比較簡單些,若是寫在mysql_connection裡會不會更好。
例如:
<?php
.....
$conn = mysql_connect($server,$username,$password);
$sql =  "SELECT * FROM  Database";
  mysql_query( 'SET NAMES utf8' , $conn );
$result = mysql_query( $sql,$conn );
....
?>

TOP

        靜思自在 : 難行能行,難捨能捨,難為能為,才能昇華自我的人格。
返回列表 上一主題