php学习笔记——语言切换
现在的网站很多都可以实现多语言,于是记录一下多语言的实例。
方法一:通过将所有显示在页面的字段放在一个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学习笔记——语言切换的更多相关文章
- go学习笔记-语言基础
语言基础 结构 基础组成: 包声明 引入包 函数 变量 语句 & 表达式 注释 程序 在开始编写应用之前,我们先从最基本的程序开始,在学习大部分语言之前,都会编写一个可以输出hello wor ...
- C#学习笔记-中英文切换(XML)
这几天因为软件需要加英文版本,所以查了好久的资料找到了相关的信息,原资料参考:http://blog.csdn.net/softimite_zifeng 上网查的中英文切换大约有两种方式:1.动态加载 ...
- JavaScript学习笔记--语言工具的了解
基础学习,快速入门资料:网站 https://www.liaoxuefeng.com ,http://www.runoob.com/js/js-tutorial.html 笔记: 编程工具:SubLi ...
- 【小梅哥SOPC学习笔记】切换NIOS II CPU的主内存后软件中需要注意的几点设置
切换NIOS II CPU的主内存后软件中需要注意的几点设置 有时候,我们可能面对这样一种情况: 1. 我们创建一个SOPC系统,并在QSYS中设置NIOS II的复位地址和异常地址都指向SRAM: ...
- go学习笔记-语言指针
语言指针 定义及使用 变量是一种使用方便的占位符,用于引用计算机内存地址.取地址符是 &,放到一个变量前使用就会返回相应变量的内存地址. 一个指针变量指向了一个值的内存地址.类似于变量和常量, ...
- PHP性能优化学习笔记--语言级性能优化--来自慕课网Pangee http://www.imooc.com/learn/205
使用ab进行压力测试 ab -n行数 -c并发数 url 重点关注下面两点: 1.Request per secend : 每秒可接收的请求数 2.Time per request : 每次请求所耗费 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE
go语言,golang学习笔记1 官网下载安装,中文社区,开发工具LiteIDE Go语言是谷歌2009发布的专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速 ...
随机推荐
- ASP.Net中应用百度编辑器(UEditor)上传图片和上传附件失败-解决方案
第一步: 第二步: 第三步: 第四步:
- java class load
https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=403638649&idx=2&sn=4f17e8b58c64875 ...
- Model 验证
[ASP.NET MVC 小牛之路]16 - Model 验证 上一篇博文 [ASP.NET MVC 小牛之路]15 - Model Binding 中讲了MVC在Model Binding过程中如何 ...
- intellij idea 学习
intellij idea是一个java的ide.由jetbrain开发. intellij idea快捷键 快捷键 说明 备注 Ctrl+N 快速导航到类 类似于Resharper中的C ...
- C#编译器闭包机制
背景 C# 在编译器层面为我们提供了闭包机制(Java7 和 Go 也是这种思路),本文简单的做个解释. 背景知识 你必须了解:引用类型.值类型.引用.对象.值类型的值(简称值). 关于引用.对象和值 ...
- DOM处理
DOM处理 这几天整理了一下思路,本来觉得DOM部分会有很多东西,但是忽然发现频繁使用的其实并不太多 class class处理部分主要有四个 hasClass:检查元素是否包含某个class add ...
- 各种排序方法的JS实现
各种排序算法的对比总结如下表所示: 冒泡排序: 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完 ...
- CFileDialog类与16进制格式的dat文件
CFileDialog类与16进制格式的dat文件 要将数据保存为.dat文件,而且是16进制的数字,怎么保存? 要读取.dat文件,文件是16进制的,怎么读取? 用CFileDialog类可以得到[ ...
- Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门
Easyui + asp.net mvc + sqlite 开发教程(录屏)适合入门 第一节: 前言(技术简介) EasyUI 是一套 js的前端框架 利用它可以快速的开发出好看的 前端系统 web ...
- WCF心跳判断服务端及客户端是否掉线并实现重连接
WCF心跳判断服务端及客户端是否掉线并实现重连接 本篇文章将通过一个实例实现对WCF中针对服务端以及客户端是否掉线进行判断:若掉线时服务器或客户端又在线时将实现自动重连:将通过WCF的双工知识以及相应 ...