php网页如何切换语言包,php设置cookies立即生效,实现网页多语言切换

本文介绍了如何在PHP中实现多语言切换功能,包括定义语言变量、处理页面传入值、设置cookies以及在页面上引入和切换语言。通过定义数组形式的语言包,实现了灵活的多语言扩展,并确保对SEO友好。此外,还展示了在实际项目中,如企业官网,如何应用此功能。
摘要由CSDN通过智能技术生成

这是最近的项目需要用到的功能,大概就是些边边角角的东西,我主要想实现的还是多语言切换这种,其实思路很足就是php基础不是太好。不过既然有了大概的逻辑在,那么其实也就没什么大不了的地方了,很多东西可以百度查询到,对于语言切换这个,原本我就有js的实现方法,不过那个太笨,而且对seo并不好,治标不治本。用php直接加载在页面上才可以被搜索引擎很好的识别,并且可以在头部申明网站的语言,比如en或者cn等。

另外,以下代码在typecho程序里面完美可用。

第一步:创建文件lang.php

1.首先是默认语言的定义和cookies的存储,还包括页面传入值的处理。function cookie($var, $value = '', $time = 0, $path = '', $domain = '', $s = false)

{

$_COOKIE[$var] = $value;

if (is_array($value)) {

foreach ($value as $k => $v) {

setcookie($var .'['.$k.']', $v, $time, $path, $domain, $s);

}

} else {

setcookie($var,$value, $time, $path, $domain, $s);

}

}

$cookietime= time()+3600;

$lang = "cn";

if(isset($_COOKIE["lang"])){

if(isset($_GET['lang'])){

if(preg_match("/^[a-zA-Z\s]+$/",$_GET['lang'])){

$lang = $_GET['lang'];

}else{

$lang = "cn";

}

cookie("lang", $lang, $cookietime,'/');

$lang = $_COOKIE["lang"];

}else{

$lang = $_COOKIE["lang"];

}

}else{

if(isset($_GET['lang'])){

if(preg_match("/^[a-zA-Z\s]+$/",$_GET['lang'])){

$lang = $_GET['lang'];

}else{

$lang = "cn";

}

cookie("lang", $lang, $cookietime,'/');

$lang = $_COOKIE["lang"];

}

}

上面就分为了三个部分,定义方法cookies,在里面将php默认的cookies存入方法进行处理,然后让其立即生效(php单纯使用setcookie是不会生效的,会报错误)。然后就是定义默认的语言字段cn,也就是中文,并且设置一个语言id,也就是langid,因为后面语言是以数组形式。最后就是对页面上传来的字段lang进行识别处理,最后存入cookies,另外还带了cookies生效持续时间的定义。

2.然后就是语言的定义,我采用的数组形式,大概就是如下形式加在lang.php里面。$lang_sort=array("首页","Home");

$lang_sort5=array("关于我们","About");

调用方式就简单了。echo $lang_sort[0] //输入中文

echo $lang_sort[1] //输入英文

这样写在我看来很有扩展性,因为要更多语言的话,就直接在后面继续加就好了,这里也就看得出来langid这个字段的作用,那就是用来在数组中定位了,0是中文,1是英文,其实网站也有定义xml的办法,那个我觉得太麻烦还是算了。

第二步:在页面上引入功能,实现切换的整个过程。

1.先引入lang.php文件,将语言包在页面上生效,注意必须也只能是php文件来引入。include 'lang.php';

2.在前台来两个语言切换的入口,无论是a标签还是写个表单都可以,我这里用a标签。英文

英文

3.然后就是对可以用来多语言切换的文字进行替换了,我的是在模板html文件,写了如下的代码。<?php echo $lang_sort[$langid]?>

这句代码替换了“首页”这个文字,在进行语言切换的时候,他会立即根据lang的值改变。

4.另外为了浏览器和搜索引擎对网页语言的识别,我还将头部的改为了如下:

以上就是实现php多语言切换的全部流程,在制作企业官网等的展示型页面的情况下,真的很实用。

7c4bba1e4521367b8db18218b14f87d3.png

规则之树版权所有,转载请注明来源,标明作者及原文链接

打赏

f9dedae40642caf3cbefafd34bdd2e76.png支付宝支付

您的大名:

1 元

5 元

10 元

20 元

50 元

100 元

万水千山总是情,给个打赏行不行。

打赏

23343b78e9b269ca24c62490ceade6ea.png

原创文章,作者:不暇,如若转载,请注明出处:https://www.ruletree.club/archives/1218/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值