排行榜 统计
  • 建站日期:2021-05-20
  • 文章总数:144 篇
  • 评论总数:693 条
  • 分类总数:4 个
  • 最后更新:9月4日

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

本文阅读 3 分钟
首页 精品教程 正文
本文最后更新于2021年06月10日,已超过478天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

blockchain

这是最近的项目需要用到的功能,大概就是些边边角角的东西,我主要想实现的还是多语言切换这种,其实思路很足就是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]    //输入英文

3.然后就是对可以用来多语言切换的文字进行替换了,我的是在模板html文件,写了如下的代码。

<?php echo $lang_sort[$langid]?>

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

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

<html lang="<?php echo $lang;?>">

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

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xinr.vip/archives/54.html
typecho通过qq邮箱显示k值qq头像,且不暴露QQ号
« 上一篇 06-09
typecho实现多语言切换,详细教程
下一篇 » 06-09
广告

发表评论

V注册会员 L评论等级
R5 条回复
  1. qqwwqq123VLv.2 说道:
    2021-12-15     Win 10 /    QQ浏览器

    积极攒积分

  2. 549916104VLv.4 说道:
    2021-09-05     Win 7 /    Chrome

    6666

  3. wangfeilongVLv.2 说道:
    2021-08-19     Win 10 /    Chrome

    这个真的很实用!学习了

    1. adminVLv.4 说道:
      2021-08-20     Win 10 /    Chrome

      @wangfeilong

      能帮助到你才是我们的初衷~

  4. happyzfwVLv.5 说道:
    2021-08-09     Win 10 /    Chrome

    感谢楼主+1

没有更多评论了

作者信息

广告

动态快讯

热门文章

最多点赞

16赞, 阅读:1.4k
15赞, 阅读:3k
13赞, 阅读:1.2k
12赞, 阅读:3.4k
广告

标签TAG

热评文章