[备忘][PHP] 本站使用的 html lang 标签自动语言识别逻辑
[备忘][PHP] 本站使用的 html lang 标签自动语言识别逻辑

本域名主站 (EnsonYan 的 个人主页 – www.ensonyan.com) 的语言切换方式由 PHP 语法实现。当用户点击语言切换按钮后,会由 JS 先行写入相关 Cookie 参数并刷新页面。在循环跳转(此举是避免 iframe 嵌套方式受到新版跨域保护逻辑的限制,与 ENCAS 单点认证系统的逻辑大致相同)到站群旗下所有域名后,回到 URL 参数中记录的请求发起页面。此时页面顶部的 PHP 代码能在 Cookie 中获取到用户选择的语言,并动态生成对应的 lang。

而对于初次访问页面,Cookie 中没有相关记录的情况,代码将会自动识别用户当前语言,并动态生成对应的 lang。

P.S: 用户的语言选择高于自动识别出的结果,否则会导致功能无效。

<!DOCTYPE html><html lang="<?php if(!isset($_COOKIE['userLang'])){$def_lang=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);if (preg_match("/zh/i", $def_lang))echo "zh-Hans";else if(preg_match("/en/i", $def_lang))echo "en-US";else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];}else{if($_COOKIE['userLang']==cn)echo "zh-Hans";else if($_COOKIE['userLang']==en)echo "en-US";}?>">...
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可
EnsonYan

EnsonYan

文章作者

关于我的详细介绍,请在主页左上角菜单栏中“关于站长”内查看!

发表评论

textsms
account_circle
email

[备忘][PHP] 本站使用的 html lang 标签自动语言识别逻辑
本域名主站 (EnsonYan 的 个人主页 - www.ensonyan.com) 的语言切换方式由 PHP 语法实现。当用户点击语言切换按钮后,会由 JS 先行写入相关 Cookie 参数并刷新页面。在循环跳转(此举是避…
扫描二维码继续阅读
2021-02-03