標題:
6-2-4 瀏覽者的語言版本
[打印本頁]
作者:
小誌
時間:
2011-4-19 18:16
標題:
6-2-4 瀏覽者的語言版本
6-2-4 瀏覽者的語言版本
「網路無國界,世界是一家」,您以為網路上的資訊有國別或地域的區分嗎?當然沒有!世界各國使用各種語言的網友都有可能光臨您的網站,以筆者的網站來說,有來自台灣、香港、中國大陸、甚至加拿大的網友來參觀,因此,為服務世界各國使用各種語言的網友,您可能將網站規劃成有多國語言的版本,當網友來參觀時,可自由選擇他適合的語言版本來瀏覽。
[attach]5565[/attach]
圖6-14 語言選擇。
當世界各國使用各種語言的網友每次來到您的網站,如果網友第一次光臨網站請人家選擇適當的語言版本來瀏覽,這是無可厚非的,但網友若是再度光臨,您又要人家選擇一次語言版本來瀏覽,這太麻煩了,好像不是很好的待客之道,所以,我們可以利用Cookie來做記錄ㄚ,當網友第一次光臨時,請他選擇適當的語言版本來瀏覽,如上圖,而他再度光臨我們網站時,不需要再選擇一次語言版本,我們會直接轉向網頁到適合他的語文版本去。
[attach]5566[/attach]
圖6-15 程式流程。
在本範例程式中,我們只需要一個Cookie,它的名稱是:「languagename」,它是用來記錄瀏覽者的語言版本,其值有下列三種可能:
big5:曾經來參觀過網站,而且,所選擇的語言版本為中文繁體。
gb:曾經來參觀過網站,而且,所選擇的語言版本為中文簡體。
沒有Cookie變數:以前沒來過,是第一次來訪,必須選擇語言版本。
作者:
小誌
時間:
2011-4-19 18:17
身份判斷
當訪客進入您的首頁,我們第一件要做的事是先去確認Cookies「languagename」的值,如果Cookie「languagename」存在,則代表訪客曾經來過,接著才開始判斷Cookie「languagename」的值,如果其值為「big5」,代表訪客要瀏覽的是『中文繁體』版本的網頁,我們就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;而其值若是「gb」,代表訪客要瀏覽的是『中文簡體』版本的網頁,就將瀏覽位置轉向到『中文簡體』版本的網頁去。
<?
ob_start();
//取得語言版本的Cookie變數值
if (isset($_COOKIE["languagename"]))
//決定該到何處去
{
$languagename=$_COOKIE["languagename"];
if ($languagename=="big5")
{
header("Location: big5.php");
}
else
{
header("Location: gb.php");
}
}
?>
複製代碼
在程式碼第8與第15行中,我們利用If判斷敘述去幫我們判斷語言版本Cookies「languagename」的值,如果「languagename」的值是「big5」,就直接將瀏覽位置轉向到『中文繁體』版本的網頁去;若是「gb」,就直接將瀏覽位置轉向到『中文簡體』版本的網頁去。ㄚ!如果「languagename」的值不是「big5」或「gb」怎麼辦?那就不做任何動作,等待瀏覽者選擇適當的版本。
[attach]5567[/attach]
圖6-16 網頁轉向。
作者:
小誌
時間:
2011-4-19 18:19
設定語言版本的Cookie
當網友第一次光臨時,我們會請他進行語言版本的設定,在網頁中我們放置了兩個語言版本的選擇圖片,並且為圖片加上了超鏈結依不同選擇連結到不同語言版本的網頁。
在不同語言版本的網頁中,我們加上了判斷語言版本Cookies「languagename」值的設定敘述,如果Cookies「languagename」的值是空字串,就將語言版本寫入Cookies「languagename」內,並將此Cookies值設定為使用後的日期起算,90天內都有效,以中文繁體網頁為例:
<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為繁體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
{
setcookie("languagename","big5",time()+7776000);
}
?>
複製代碼
上例中,只有在Cookie變數languagename不存在,也就是在瀏覽器中沒有我們所需要的Cookies「languagename」時,才寫入Cookies!
in.php(首頁、語言版本判斷)
<?
ob_start();
//取得語言版本的Cookie變數值
if (isset($_COOKIE["languagename"]))
//決定該到何處去
{
$languagename=$_COOKIE["languagename"];
if ($languagename=="big5")
{
header("Location: big5.php");
}
else
{
header("Location: gb.php");
}
}
?>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-tw">
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>網頁版本檢查</title>
</head>
<body background="bg.gif">
<p align="center">
<img border="0" src="twbtsb1.gif"></p>
<p align="center">
<img border="0" src="choose.gif"></p>
<p align="center">
<!-- 中文繁體的鏈結 -->
<a href="big5.php">
<img border="0" src="big5.gif"></a></p>
<p align="center">
<!-- 中文簡體的鏈結 -->
<a href="gb.php">
<img border="0" src="gb.gif"></a></p>
</body>
</html>
複製代碼
big5.php(繁體網頁、繁體版本設定)
<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為繁體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
{
setcookie("languagename","big5",time()+7776000);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>中文繁體網頁</title>
</head>
<body background="bg.gif">
<p>你好!!歡迎光臨麻辣學園</p>
<p><font color="#0000FF" size="5"><b>BIG5碼繁體網頁</b></font></p>
</body>
</html>
複製代碼
gb.php(簡體網頁、簡體版本設定)
<?
ob_start();
//取得語言版本的Cookie變數值,若無語言版本設定
//將語言版本設為簡體中文,語言版本設定90天內有效
if (!isset($_COOKIE["languagename"]))
{
setcookie("languagename","gb",time()+7776000);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>中文簡體網頁</title>
</head>
<body background="mainbg.gif">
<p>您好!!歡迎光臨麻辣學園</p>
<p><font color="#008000" size="5"><b>GB碼簡體網頁</b></font></p>
</body>
</html>
複製代碼
作者:
adolph
時間:
2014-7-19 16:21
如果改用萬國碼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 );
....
?>
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)