Rumah > pembangunan bahagian belakang > tutorial php > PHP如何识别系统语言或浏览器语言

PHP如何识别系统语言或浏览器语言

WBOY
Lepaskan: 2016-06-23 14:04:02
asal
1088 orang telah melayarinya

有两个站cn,en
需要当在国外访问cn的时候直接跳转到en去
请问有什么方法可以完成。
我用的

preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);$lang = $matches[1];switch ($lang) {	case 'zh-cn' :		//header('Location: http://cn.test.com/');		echo "中国";		break;	case 'zh-tw' :		// header('Location: http://tw.test.com/');		echo "台湾";		break;	case 'ko' :		//header('Location: http://ko.test.com/');		break;	default:		// header('Location: http://en.test.com/');		echo "英文";		break;}
Salin selepas log masuk

火狐和IE显示的不同,IE是正常的。
如直接显示$_SERVER['HTTP_ACCEPT_LANGUAGE']
IE为:zh-cn
火狐为:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3 


回复讨论(解决方案)

先echo $lang看看

可以考虑用js来判断客户端语言

参考:
http://www.w3help.org/zh-cn/causes/BX2040

我认为用你前面那个正则匹配就可以用啊,我分析了楼主的需求,给楼主建议:语言版本记录保存在cookie里面,而且可以从get值传递语言类型(不能让因为浏览器用户是中文就不浏览英文网站吧)。

当用户读取语言的时候首先读取get值,然后是cookie值,最后是浏览器的值。

看看这两篇文章,是否可以帮助你,一个获取浏览器,一个获取操作系统信息。
php 获取访问者浏览器的代码
php获取访问者操作系统的代码

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan