徐州企业网站设计,网站定制开发,php 做网站xml地图,青海wap网站建设比较好起初想到制成XML文档形式#xff0c;这样操作也起来很容易。只是看到说XML效率不怎样再者就是不同的模板#xff0c;可这样也有个小问题#xff0c;有些词汇比如时间提示是不确定#xff0c;与可能是minute #xff0c;day。也有可能复数加 s那好吧#xff0c;做成数组这样操作也起来很容易。只是看到说XML效率不怎样再者就是不同的模板可这样也有个小问题有些词汇比如时间提示是不确定与可能是minute day。也有可能复数加 s那好吧做成数组可数组就得做成在php文件的变量很难做些扩展(我所知道所认为的是这样)最后做成txt文本文件的形式同样也为这样的效率担心打开文件搜索字符串截取字符串这些所幸最后运行了一下一般机子大概0.0004秒这让我很惊奇原以为会很慢毕竟要调用多次。好吧上代码class language{static $lanObject;public $type; // unit , dashboard , menu ,otherpublic $lan; // languageprivate $special; // The common in the fileprivate function __construct(){if( isset($_GET[hl]) || isset($_POST[hl]) ){switch( isset($_GET[hl])?$_GET[hl]:$_POST[hl] ){case en:$this-lan en;case zh:$this-lan zh;case all:$this-lan all;default:$this-error();}}else$this-lan isset($_COOKIE[hl]) ? $_COOKIE[hl]:zh;}public static function getObject(){if( !(self::$lanObject instanceof self) )self::$lanObject new language();return self::$lanObject;}public function lto($key) //$key is English{if( $this-lan ! zh )return $key;if( empty($this-special) ) // if the $special is null{if( isset($this-type) )$this-special file_get_contents($this-type..txt);elsereturn $key;}echo $this-search($key);}private function search($searchTozh) // PHP String{$key_start strpos($this-special,$searchTozh);$key_end strpos($this-special, ,$key_start);$len_str strlen($searchTozh);$for_sub $key_start $len_str 1;return substr($this-special, $for_sub, $key_end - $for_sub);}}strpos(); 是找到字符串第一次出现的位置 比如 ‘wo 在 ‘hello world 中返回值为 6substr();是截取字符串的一部分接下来是调试时加上的代码$la language::getObject();$la-type unit;$la-lto(min);echo ;$la-lto(hello);lto(这里面要翻译的英文);unit.txt 文件的内容格式是hello-你好 min-小 minute-分钟 minutes-分钟$special设计为全局也是想到不止一次会调用lto() 如果反复加载文件太浪费性能了。$type设计为公有是考虑到加载的文件的效率问题有的时候并不需要显示几天前这些所以不如把这些按使用类型分开比如有专门负责菜单翻译的menu.txt 也有专门为操作比如删除收藏 翻译的txt文本。这样可以自由设定要加载的文本语言也可以自由设定。好吧程序还可以改进我没有按http请求中的客户端语言来设置$lan