使用PHP开发深度多语种网站的解决方案小谈03/26/2009

中国加入WTO已有相当长的一段时间,全球经济贸易一体化的进程也一直没有停止她的脚步。将自己的产品销往全世界,和各种肤色的人们谈生意,这些我们现在都已是司空见惯、习以为常的了。这样的趋势下,越来越多的企业要求他们的网站是多语种的,让他们产品所覆盖地区的人群都能看懂他们的网站信息,和他们交流,获得线上订单等等。php只是众多web开发语言中的一种,要实现深度多语种,所谓深度多语种就是“完全”的多语种,从页面内容、数据库甚至页面布局和CSS样式(例如给欧美人群和亚洲人群呈现不同的页面风格),而不只是仅仅用一个语言包来动态改变页面文字(不包括从数据库读取的数据)的语种了事。目前实现多语种的方案大概有以下2种。
1、为每个语种建立不同的目录(或者绑定不同的二级域名)来实现深度多语种
例如,http://website/chs,http://website/cht,http://website/eng,分别对应简体中文,繁体中文和英文,这种做法就相当于做了3个网站。这里有个现成的例子就是中华网,当我们输入www.china.com的时候,他的首页JS会判断当前浏览器语种,自动跳转到相应目录,当然其繁体版和英文版都使用了二级域名,这丝毫不会影响我们这种方案的实施,微软的网站也是这种方案。要实现这种方案,我们可以将共享部分的代码通通放在web根目录下,当然我的意思不是说不在web根目录下建立二级目录来为库文件归类,然后在chs,cht,eng等等语种目录下分别初始化不同的数据。这样做的好处是每个语种网站的独立性出奇的好,要增加一个语种甚至不用动原来的任何代码,直接建个目录得了。在维护上,甚至可以独立,每个语种由不同地区的管理员来更新内容.
2、在同个URL上实现深度多语种
显然,这种方案不太适合一个超过10个语种的网站。实现的思路是根据不同的语种传入值,比如$_GET['lang'],来调用不同的语言包,风格包,数据库。他的好处也显而易见,每个访客的网址几乎都有是一模一样的,页面名称也都是相同的,整齐划一。各语种网站的独立性也还不错,只是相对于方案一,当我们想在繁体版上多显示一个页面出来,或者换个页面名称,将显得比较困难,也就是对单语种网站结构不大容易变动。管理上倒也不会存在大的困难,这种方案比较适合语种不多的情况,后台大多只需要一个简体中文版即可。

至于数据库的方面,就要看需求了,可以将不同的语种数据库部署在不同的服务器上、也可以在相同的服务器上的不同数据库中、还可以是同一数据库的不同表中、当然也可以是相同的表中的不同字段,考虑的只是网站的负载、并发以及成本的问题了。

本文只是粗略的讲了一下多语种的解决方案,不当之处,欢迎大伙斧正啊。

614位童鞋围观 | 2条评论分类: PHP 标签:  

zend studio 6.1提高日常开发工作效率10%03/19/2009

我的日常工作就是从事php开发,代码的编写、调试自然就是这个工作最主体的部分了,我的开发环境是部署在windows下的,在过去的很长一段时间内,我是使用WAMP+UltraEdit来进行开发的,这在刚开始,事情没有想象的那么顺利,我总是在任务栏上各个窗口之间不停的切换,我显得非常的繁忙,却效率低下,尽管我用“这套工具”完成或者协助完成了很多个中小型项目,但我记得当时的工作强度是非常大的,这套工具也给我带来显而易见的好处:养成了细心的习惯、强行记住了很多php函数、快速的定位和解决问题(使用var_dump和exit)。 此文妙哉,快快看全文 »

2,865位童鞋围观 | 16条评论分类: PHP 标签:  

一个下划线引发的IE6不能登录的问题03/06/2009

最近的一个项目中,出于安全和一些特殊因素的各种综合性考虑(哈哈,这个句式神似某后现代作家),我将后台的目录进行“非常规”命名,测试后一直使用正常,不过似乎也一直有反映后台登录多次才能成功,可我怎么测试怎么都是没有问题的,而且屡试不爽,根本就没有问题嘛!于是很是怀疑这厮的人品问题,但问题还是不久后的今天在某同事的机器上上演了!“历史与现实总是惊人的相似!”TA使用的IE6,之前也登录该后台多次,均未发现任何问题,今天却是个特殊的日子,TA大声疾呼,登录失败了。这让正在喝水的我,出于极其好奇、本着对上帝负责的态度,飞奔至其电脑前,输入我的超管帐号和密码,不时,居然又回到了登录界面,我确信我的各项输入都是正确的,怎么回事呢?大家都陷入了迷思,在我犀利的目光注视和扫描下(呃,有点儿矛盾),我发现后台的地址/xxxx_xxxx/login.php,居然成了/xxxx%5Fxxxx/login.php,即被urlencode了,哦!问题就出在这里了,因为我们的登录验证会严格判断登录来源,显然xxxx_xxxx不等于xxxx%5Fxxxx,所以,就认为非法用户登录了,被踢!后来,经过测试,我们在后台进行urldecode,以期不再出现%5F的情况,事实上,问题并不是出现在这里,而是IE6,该死的IE6会自作聪明的进行编码,即将下划线转成%5F,而且经多次测试,还是随机的转化的,所以就让管理员时而能正常登录,时而又耍小脾气,不让人登录,这显然是一个糟糕的事情,发现了问题之所在以后,火速改了后台地址,问题得以解决。
回头看看本文,发现多处使用了感叹号,可见本人对于这个BUG的无语程度,绝非莫名。。。

522位童鞋围观 | 2条评论分类: PHP 标签:  

bo-blog插件——有新评论、留言自动给博主发送短信(sms2 飞信版)12/31/2008

这是一个基于飞信通信协议来实现的免费发送手机短信的bo-blog插件。在使用该插件之前,请确认你已开通了飞信,并且您的博客空间支持fsockopen函数,服务器的防火墙允许主机访问外部数据(这点,如果不清楚可以咨询您的空间服务商)。

适用版本:bo-blog2.1.0, bo-blog2.1.1(其他以前版本未测)
安装步骤:
1、下载附件,解压到本地,请不要改变目录名称sms2_fetion;
2、将该目录全部上传到博客空间的plugin中;
3、进入bo-blog后台,外观扩展->插件管理,安装插件,输入sms2_fetion后确定;
4、点击插件列表中的sms2_fetion行的管理图标,进入sms2_fetion插件的后台设定,输入您的手机号码和飞信密码;
5、安装完成,在前台任意发表一篇评论进行测试;

注意:使用本插件发送短信的过程中,会导致您正在线的客户端掉线!(这是飞信的登录协议所限定的。)

后台设置如下图:


下载sms2 1.5.1 飞信版
sms2_fetion.rar

1,689位童鞋围观 | 17条评论分类: PHP 标签:  

zendchina,我还说你干嘛?11/30/2008

上次本来在phpchina上很是有些气愤的提出zendchina.net的不尊重原创的问题,不尊重我的劳动成果的问题。后来,一个论坛ID为zendchina的人PM我:他会改变转载方式,并且对自己的行为表示抱歉云云。后来,也就是今天,我正好就去看了一下,看看他做事的方式,或者对待这个问题的态度,呵呵,不出所料,仅在数篇文章末尾用“ 转载自:zendstudio.net”来表示本文系转载,但本站的用Zend Studio管理数据库—zde的SQL管理器功能介绍中,我在文末说到这样一段话:


OK,到此,我们就将zend studio的sql管理器全部介绍完了,您有任何问题,或者发现了错误,都请给我留言,或者其他方式联系我,让我们共同维护一个高质量的教程,帮助更多的人解决困难。


然后,被转载到zendchina上之后,就变成了这样的:

所以,我也不再说什么了,我都跟他说了,还是一如既往,我何必再去花费时间去弄清这些无关紧要的问题呢?当然,这里的出发点是不影响知识的共享,至少,zendchina觉得这篇文章有用,而有更多人能看到。
好吧,就这样了,浪费一篇日志来发这么点牢骚。

当然,在这里,我还是欢迎大家转载我做的zend studio 教程,但是,希望您能尊重我的劳动成果,保留下原文链接,或者与我取得联系,在我口头同意的情况下,你可以自由的转载甚至重新编辑,谢谢!

1,900位童鞋围观 | 10条评论分类: PHP 标签:  

zend studio出视频教程你会支持吗?11/26/2008

有时候我还是觉得图片+文字的方式来阐述问题不够直观透彻,当然这里面也有两个重大问题是本人技术太菜和文字功底太差。有一些现象已经越来越明显了:本来我业余时间就很不充裕,然后去敲一大堆文字,截一系列的图片来堆砌,写了很多,而真正讲述的知识可能还不到位,枉费了不少精力,与其这样,还不如直接来个录像,直接将我的操作一步步的呈现给大家,岂不快哉!当然这里的录像不准备采用全程录屏+配音讲解的方式,因为一则生成的文件过大,大家观看、下载都不方便,搞多了也没空间放了;二是个人觉得效果不能达到最好;三呢就是本人不打算轻易在互联网上展示我美丽的嗓音(哈哈)。
     我的初步打算是采用SWF格式,在线播放和下载随大伙儿高兴,采用的软件初定为一款叫做demo builder的制作工具,这个软件做出来的成品大概类似于这样:http://demo-builder.com/tutorials/getting_started.html,这个官方站里还有很多的展示教程,我觉得非常到位,甚至可以用淋漓尽致来形容,生成的文件也不会很大,所以选的这款软件来做zend studio教程

    OK,我就想到这么多,您有什么好的意见或建议呢,欢迎告诉我哦,您是否觉得这种形式比用文字+图片的方式直接写出来更好呢?

2,168位童鞋围观 | 31条评论分类: PHP 标签:  

preg_replace居然支持所有参数都是数组11/15/2008

这真是让我很是激动了一小会儿的新发现,原来我只知道str_replace支持数组查找替换,当然是不知道要替换的原始字符串可以是数组,也就是只知道前两个参数(即search和replace)可以是数组,后来一查,哈哈,要替换的字符串(即subject)也可以是数组!我们看看手册上的原话


subject
If subject is an array, then the search and replace is performed with every entry of subject, and the return value is an array as well.


今天在弄到一个天气采集的时候,处理后的数据是一数组,包含了3天的天气状况,本想先foreach,然后preg_replace,但心有不甘(发现不够优雅,是的,最近我在追求优雅的实现,呵呵!),于是翻手册,果然大有斩获!看看,看看这原话翻译。


如果 subject 是个数组,则会对 subject 中的每个项目执行搜索和替换,并返回一个数组。


痛快!一下子就优雅的实现了数组的替换,强大的说。
这里还是友情提醒一句话:尽信手册,不如无手册!所有的种种,还是以实践为标准哈。。。。。。

1,270位童鞋围观 | 3条评论分类: PHP 标签:  

Zend studio教程已隆重更新到10.28 欢迎参观指导10/27/2008

最新的zend studio教程列表如下

  1. 基础部分:
    1. ZDE的初级安装教程(图)
    2. Zend Studio 5.5.1 界面详细介绍及菜单、工具栏功能详解(图)
    3. Zend Studio的特色功能——模板(templates)
    4. zend studio的特色功能——代码片段(code snippets)
    5. Zend Studio快捷键一览表
    6. zend studio 5.5无法打开主界面故障解决方法一例
    7. 修改zend studio 的默认字体 让编辑器看起来更舒服
  2. 提高部分:
    1. 服务器调试——Zend Debugger 的安装教程
    2. Zend Studio的远程调试(服务器调试)技术 Zend Debugger(一)



共9篇原创文章,欢迎大家多多指教,提宝贵意见,系列教程的后续部分会陆续推出,欢迎您的届时关注。

4,275位童鞋围观 | 4条评论分类: PHP 标签:  

Windows下自由创建.htaccess文件的N种方法10/26/2008

.htaccess是apache的访问控制文件,apache中httpd.conf的选项配合此文件,完美实现了目录、站点的访问控制,当然最多的还是rewrite功能,即URL重写,PHP中实现伪静态的一个重要途径,也是被公认为SEO中搜索引擎友好的极为有效的一个手段。
尽管前些天的黑屏风波闹的沸沸扬扬,但依本人拙见,windows用户并无任何减少。现在的一个实际问题就是windows不允许重命名时.的前面没有字符,它认为这样的文件名是不合法的。这就造成我们无法通过重命名”新建文本文档.txt”为”.htaccess”来创建此访问控制文件,但是,事情总有解决的办法。且看下面的几个方法:

1、使用DOS命令,在DOS下有三种方法可供选择:

使用屏幕编辑命令copy con .htaccess后回车,输入内容,最后按下ctrl+z结束编辑,就成功生成了.htaccess;
使用重命名命令ren 1.txt .htaccess ,这是最常规的方法了,在windows窗口下不能执行的命令,在cmd下却如履平地;
使用重定向命令 echo. >.htaccess,这里将一个回车符输入到.htaccess,同样能创建成功;
三种方法一并截图如下:

此文妙哉,快快看全文 »

4,033位童鞋围观 | 12条评论分类: PHP 标签:  

和一位同行交流后,原来自己不可理喻的菜10/18/2008

还是忍不住把它写下来,改天把聊天记录整理下发上来。我着实被彻底的震撼了——正则表达式、高级类、框架,这些php中的精髓玩意儿,原来我还是属于一窃不通的范畴!
我深深的感到羞愧难当,无地自容。成天在一根朽木上荡着秋千,终于摔下来了,疼痛,一下子从屁股涌向了全身。认识gently的人都知道,“这厮一向死要面子活受罪”,“宁愿被打死,也不愿被人气死”,“要打击gently,只要让他感到技不如人,就能轻松得逞了”……,这些都是友人们的最中肯的评价。大概出于兄弟们的了解,我或多或少的被捧的有些云里雾里。这些php的高级玩意再不系统的恶补一下,我还颜面何从?大不了我从头再学一遍php,有啥了不起!靠,18年后,老子还是一条好汉。时常觉得自己是一只温水中的青蛙,而随着“水温”的升高,我越发的浑身不自在,青蛙能成功自救么?(我们不理会天涯牛人的实验,说温水并不能煮死青蛙,而它会自己跳走…),不然,要是根据这些屁话,我岂不是不如一只青蛙了?

1,871位童鞋围观 | 9条评论分类: PHP 标签:  

PHP界大牛们
反人类不分昼夜
牛掰级朋友圈子