现在的网站很多都可以实现多语言,于是记录一下多语言的实例。

方法一:通过将所有显示在页面的字段放在一个message文件里面来实现

思路如下图:

test代码:

main.php:

<?php include_onece ("ulitity.php");?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" charset="utf-8" src="js/test.js" ></script>
</head>

<body>

<h4><?php ?>MSG_1</h4>

<select name="language" onchange="changeLan(this)">

  <?php

  if($_COOKIE['language']=="en")

  {
    print '<option selected=”selected“ value="en">.MSG_EN.</option>';

    print '<option calue="ch">.MSG_CH.</option>';

  }

  else{

    print '<option value="en">.MSG_EN.</option>';

    print '<option selected=”selected“ value="ch">.MSG_CH.</option>';

  }

  ?>

</select>

</body>

test.js:

function changeLanguage(obj) {
  document.cookie="language="+obj.value;
  location.reload();
}

ulitity.php:

<?php

  if($_COOKIE['language']=="en")

  {

    include_onece ("message_en.php");//保证只加载一次

  }

  else{

    include_onece ("message_ch.php");

  }

?>

language_en.php:

<?php

define("MSG_1","hello world!");

define("MSG_EN","English");

define("MSG_CH","中文");

?>

language_ch.php:

<?php

define("MSG_1","hello world!");

define("MSG_EN","English");

define("MSG_CH","中文");

?>

感觉这是比较简单的双语切换,以上cookie也可以用session,不过js是客户端的脚本语言,而session是存在服务器的,所以存session不能在js里面写,明天再来研究一下session实现。

方法二:这种方法更简单了,那就是直接弄两份代码,然后根据用户的选择来判断加载哪一份代码。维护不方便。这里就不记录了。

补充:

1、session和cookie的区别。

sessoin是服务器端的,但是sessionid存在cookie中,服务器会清掉长期不用的session。

cookie是存在浏览器的,可以被用户禁用,生命周期没有设定保留时间以及销毁的话是从创建到关闭浏览器。

2、刷新子页面,父页面和自己的方法。

3、get和post的区别。

4、cookie的存储方法与格式。

php学习笔记——语言切换的更多相关文章

  1. go学习笔记-语言基础

    语言基础 结构 基础组成: 包声明 引入包 函数 变量 语句 & 表达式 注释 程序 在开始编写应用之前,我们先从最基本的程序开始,在学习大部分语言之前,都会编写一个可以输出hello wor ...

  2. C#学习笔记-中英文切换(XML)

    这几天因为软件需要加英文版本,所以查了好久的资料找到了相关的信息,原资料参考:http://blog.csdn.net/softimite_zifeng 上网查的中英文切换大约有两种方式:1.动态加载 ...

  3. JavaScript学习笔记--语言工具的了解

    基础学习,快速入门资料:网站 https://www.liaoxuefeng.com ,http://www.runoob.com/js/js-tutorial.html 笔记: 编程工具:SubLi ...

  4. 【小梅哥SOPC学习笔记】切换NIOS II CPU的主内存后软件中需要注意的几点设置

    切换NIOS II CPU的主内存后软件中需要注意的几点设置 有时候,我们可能面对这样一种情况: 1. 我们创建一个SOPC系统,并在QSYS中设置NIOS II的复位地址和异常地址都指向SRAM: ...

  5. go学习笔记-语言指针

    语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...

  6. PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205

    使用ab进行压力测试 ab -n行数 -c并发数 url 重点关注下面两点: 1.Request per secend : 每秒可接收的请求数 2.Time per request : 每次请求所耗费 ...

  7. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  8. [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE

    go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...

随机推荐

  1. wcf的binding和host

    ----------------------------Binding绑定:定义:绑定表示通讯信道的配置:定义了客户端与服务端之间的协议:---传输协议:http.tcp.命名管道.msmq,自定义( ...

  2. 【转载】matlab如何判断一个点是否在多面体内

    转载自:http://www.52souji.net/point-within-a-polyhedron/ 我遇到的一个实际问题是:要在空位区域随机放置一定数量的原子,这些原子在空位区域任何一处存在的 ...

  3. 领域驱动设计(DDD)的实际应用

    领域驱动设计(DDD)的实际应用   笔者先前参与了一个有关汽车信息的网站开发,用于显示不同品牌的汽车的信息,包括车型,发动机型号,车身尺寸和汽车报价等信息.在建模时,我们只需要创建名为Car的实体( ...

  4. JAVA学习:多态

    多态:可以理解为事物存在的多种体现形态.   人:男人,女人 动物:猫,狗. 猫 x = new 猫(); 动物 x = new 猫()   1,多态的体现 父类的引用指向了自己的子类对象. 父类的引 ...

  5. iOS基础 - Copy

    copy和mutableCopy 一个对象使用copy或mutableCopy方法可以创建对象的副本 copy – 需要先实现NSCoppying协议,创建的是不可变副本(如NSString.NSAr ...

  6. c# 发邮件功能

    using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;using Sy ...

  7. P2P中的NAT穿越方案简介

    文章链接: http://www.shipin.it/Index/videolist/id/68.html

  8. 使用WCF扩展记录服务调用时间

    随笔- 64  文章- 0  评论- 549  真实世界:使用WCF扩展记录服务调用时间   WCF 可扩展性 WCF 提供了许多扩展点供开发人员自定义运行时行为. WCF 在 Channel Lay ...

  9. Scrum与高效能人士的执行4原则

    Scrum与高效能人士的执行4原则 分享了高效能人士的执行4原则,发现它和Scrum非常相近,可以形成互补. Scrum框架: 高效能人士的执行4原则框架: Scrum与4原则 Sprint Back ...

  10. 调WScript.Shell时报错:Automation 服务器不能创建对象

    我们经常需要通过生成ActiveXObject("WScript.Shell");来调某一exe文件, 如 //设置网页打印的页眉页脚为空 var HKEY_Root,HKEY_P ...