この記事では、phpでユーザーアクセスページの言語クラスの取得と設定を実装する例を説明し、皆さんの参考に共有します。具体的な分析は次のとおりです:
このインスタンスの User Language クラスは、ユーザーがアクセスするページの言語を取得/設定します。ユーザーがアクセス言語を設定しない場合は、Accept-Language が読み取られます。ユーザーが選択した言語(英語、簡体字中国語、繁体字中国語)に応じて、対応するページを表示します
UserLang.class.php クラスファイルは次のとおりです:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
/**ユーザー言語クラスは、ユーザーがアクセスするページの言語を取得/設定します。ユーザーがアクセス言語を設定していない場合は、Accept-Language を読んでください。 * 日付: 2014-05-26* 著者: fdipzone * バージョン: 1.0 * * 機能: * public get ユーザーアクセス言語を取得します * パブリックセット ユーザーアクセス言語を設定します * private getAcceptLanguage HTTP_ACCEPT_LANGUAGE を取得する */
class UserLang{ // クラスの開始
private $name = 'userlang' // クッキー名 ; private $expire = 2592000; // Cookie の有効期限は 30 日です
/**初期化 * @param String $name クッキー名 * @param int $expire クッキーの有効期限が切れます */ パブリック関数 __construct($name='', $expire=null){
//クッキー名を設定します if($name!=''){ $this->name = $name; }
//Cookieの有効期限を設定します if(is_numeric($expire) && $expire>0){ $this->expire = intval($expire); } }
/**ユーザーのアクセス言語を取得する*/ パブリック関数get(){
// ユーザーが言語を設定したかどうかを判断します if(isset($_COOKIE[$this->name])){ $lang = $_COOKIE[$this->名前] }その他{ $lang = $this->getAcceptLanguage(); }$lang を返す }
/**ユーザーアクセス言語を設定する * @param String $lang ユーザーアクセス言語 */ パブリック関数セット($lang=''){
$lang = strtolower($lang);
// 英語、簡体字中国語、繁体字中国語のみ使用可能 if(in_array($lang, array('en','sc','tc'))){ setcookie($this->name, $lang, time()+$this->expire); }}
/**HTTP_ACCEPT_LANGUAGEを取得する*/ プライベート関数getAcceptLanguage(){
$lang = strto lower($_SERVER['HTTP_ACCEPT_LANGUAGE']);
if(in_array(substr($lang,0,5), array('zh-tw','zh_hk'))){ $lang = 'tc'; }elseif(in_array(substr($lang,0,5), array('zh-cn','zh-sg'))){$lang = 'sc'; }その他{ $lang = 'en'; }
$lang を返す } } // 授業終了 ?>
| デモサンプルプログラムは以下の通りです:
1
4 5 6 7
| 「UserLang.class.php」が必要です
$obj = 新しい UserLang('sitelang', 3600); echo $obj->get().' ?>
|
http://www.bkjia.com/PHPjc/886548.html