载入中…

文章标签 ‘有趣的学习’

PHP程序国际化小记[i18n]

2011.08.11 | 天气: | 标签: , , , , , , ,

Linux上的国际化基本都是由gettext来完成的,配合这.po.mo的使用,可以说是相当方便,PHP程序的国际化我还是第一次做,这里有篇文章讲得非常不错,我这就不存档了。
这里讲下我自己遇到的一些问题:

不能加载.mo文件

明明写好了.mo,路径也正确,却怎么也加载不上来。
得检查两个地方:

  • 主机是否支持这个翻译语言

    像我写程序和测试用的Ubuntu执行了locale -a后,只有寥寥几种en_US.utf8 zh_CN.utf8 zh_SG.utf8
    而在东哥的主机上测试的时候竟然有191种!而且细心的你可能注意到了,我的Ubuntu上只有两种中文:一个是简体zh_CN.utf8,和新马泰地区的zh_SG.utf8;而东哥的主机上有还有HK TW。所以测试的时候发现所有都写好了却不识别,要先看看主机是否支持。p.s.如果没有ssh,可以新开一个php文件,在里面写入
    echo system('locale -a');
    保存后访问即可

  • 编码问题

    编码国内常见的有utf8、gbk、gb2312三种,不过我个人觉得国标码太废柴了,写些别国的文字或者符号就直接趴下了,所以直接用utf8。
    setlocale(LC_ALL, $key.'.utf8');
    把这段代码加到php中,这样启用的语言和编码格式才能正确加载。注意utf8前还有一个点(这个小问题折腾了我至少10分钟才发现)

HTTP_ACCEPT_LANGUAGE读取问题

真心觉得这问题简直坑爹,因为浏览器传上来(即超级变量$_SERVER['HTTP_ACCEPT_LANGUAGE']里的值)的是「zh-cn」这样的格式,而gettext使用的却是「zh_CN」,大小写还不能搞错,还需要蛋疼地转化一下,这里我用了正则的替换
$name = preg_replace('/(\w+)-(\w+)?/e',"'\\1_'.strtoupper('\\2')", $name);
哈哈,聪明的你应该发现了,就算传上来像「zh」这样的函数,这条正则也会聪明地避开,反向引用和//e的使用,想必我不用多说了。

全部的源代码在这里

(@.@-)文字表情版正则入门[1]

2011.05.30 | 天气: | 标签: , ,

以前听说会正则的人都是仰视大神状,因为正则太难学啦;艰难地学了一段时间后,俺发现有些文字表情正好可以匹配正则,所以本文目的就是让不知道正则的同学通过很达意的文字表情开开心心地了解正则表达式从而入门。

首先,正则表达式能干吗呢?最简单的正则可以在外卖单中要找到需要的电话号码,也可以很浪漫地把一般的文件匹配变成情书哦!所以,这么好的东西可不能放着不用嘛。为了验证我说得对不对,大家还需要一个正则工具
(在线的正则工具http://www.gethifi.com/tools/regex

咱们先说好蓝色的文字代表正则表达式,准备好了以后咱们从最简单的开始咯~


  1. 这个正则表达式能匹配所有“囧”字,够简单吧。
    同理,类似=3=(撅嘴)、o_O(疑问)@_@(晕眩)><(紧闭双眼)等简单的表情可以匹配一样的字符,大家可以到上面的正则工具那里实验一下先。玩了一阵后,你可能会问,这个正则和我的文字编辑器的“查找”到底有什么不同,强大在哪了?
  2. (@.@-) 还记得标题上的眼镜哥我吧,我来回答。其实我也是一个简单的正则。我的小句号嘴巴”.”就是一个可以匹配任何字符的神奇字符(道上叫“元字符”)。来见见我的兄弟们吧

    你可能注意到了,这个神奇的小句号可以对应各种字母、数字、符号。我眼镜哥厉害吧!

  3. 阅读全文 »

密码保护:破解简单Mifare射频卡密钥杂记

2011.04.01 | 天气: | 标签: , , , , ,

这是一篇受密码保护的文章。您需要提供访问密码:


博客调用QQ昵称的歪门邪道

2011.02.27 | 天气: | 标签: , , ,

大家可以到博客任何文章页面或者我的留言板邮箱那栏输入自己的”QQ号+@qq.com”,在名称那栏应该会自动填写你的QQ昵称。当然,如果你输入的不是QQ号(有字符的QQ邮箱),不会判断而是读取然后填写。

代码呢是非常简单,共计454Byte:下载qq_nick.js
要插到哪你应该懂的,要不然请看看w3shcool的javascript教程
至于这个方法真是非常聪明,当然这不是我想出来的,我哪有这么聪明,只是改装了一下,大神的帖子在:

alibobo.5d6d.com/thread-291-1-1.html

如果你有闲工夫可以听我给你说说整个故事

事情还得从上次搞了个从邮箱智能判断用户的javascript之后说起,有位大姐姐在我这用自己的QQ号留言了,一是暴露了自己的QQ号,二是太生硬了;所以我一直在想能不能调用QQ昵称。然后实验了各种方法,ajax异步调用资料失败,原因是Firefox和Chrome之流不允许跨站调用(IE这次倒是愣头青),所以呢,就只好用大神的方法了,大神的方法聪明之处在于他对那段url请求的返回的理解
比如262652047(我的Q号)返回值是
_Callback(
{"uin":262652047,
"qzone":1,
"nickname":"#!卓",
"offsetBirth":51,
"avatarUrl":"http://qlogo4.store.qq.com/qzone/262652047/262652047/100"});
返回了一个类似函数的东西,大神真是灵光,既然返回了一个函数,就不如用函数调用呗,所以就有了最开始的那个_Callback(函数(而且Firefox也认为这只是一个站外脚本调用,没卡死),然后把他们一一填写到各自的输入ID值里(input id),当然,返回值还有头像地址啊,空间啊什么的,不过在我的博客里不需要,所以我去掉了。

顺带解决原来版本的问题:

  1. 不能多次请求(其实是变着方构成新的函数)
  2. 没有出错处理(超时啊、没有办法获得用户名等问题)

小结一下

从调用QQ昵称的全新方法,可以看出活在一个聪明人比你多的世界真是种幸福啊。

才发现原来Javascript & DHTML Cookbook P56已经讲了这事,真是看书不仔细……

考研那些点点滴滴

2011.01.29 | 天气: | 标签: , , , , ,

一阵古董级的手摇铃声,专业二科考试结束;我提前了5分钟走出了浙江区210教室,站在走道里的,早就冷得不行了,身上的暖宝宝和教室里不吹我的暖空调让我知道了什么叫没有知觉的脚和热过头的身子,好在考得不是足球。楼下还有两个家伙抽起了烟,他们就不怕点着应技大那些古董级的楼板?岳哥这时候从人群钻出来,大家都很淡定。
和三个同学各买了一瓶奶茶就坐回学校的地铁,一路上都在聊考完了干什么,才发现边上有个女生长得不错,都他X的禁色快一年了,漂亮的小妞都很少关注了,回家肯定要被各种“女朋友呢?”轰炸,想想自己也是大四老鬼了,再不行动行动宅下去估计光棍一辈子了。
生活,在工技大考研期间还真是个很严重的问题,暑假的时候吃了整整一暑假的肉夹馍饭和黑米粥,半夜都热到睡不着(37度……),白天5点多就要起来坐车去上财上课;冬天得在被子抖上半小时才微暖能睡。想减肥的各位就来上海考研吧,保证满意!
电脑,其实考研期间还是不断看新闻的,只是学业真的荒废了,几乎没学过学校教的东西,幸好只有什么机电控制、气动技术(开卷考,没想通)两科老师给我开红灯,其实也想说说这个学校破到连考研的学生都不怎么支持,考前20天还各种让我们清出图书馆搬到其他地方给什么狗屁市领导检查!?图书馆平时不好好管,各种活动在里面搞,本来应该是安静到家的地方竟然还有演出!?(详见2010十月30日的推特)还各种理由把我们赶来赶去,最后一星期我终于找到了一个安静的角落

上面的东西也是最后冲刺的东西:数学错题本,英语单词本,专业课课本,政治的十八金鉴。
考研实践证明:

  1. 政治不用太费时,认为挡永远是对的就够了
  2. 平时就要多练英语作文
  3. 阅读理解很费脑,要多做
  4. 数学不要想只做历年真题就以为自己搞懂了考研数学,那帮老头黑着呢
  5. 有时间要搞清楚数学定理背后的意义,解题很方便
  6. 没有奥数的脑也要装得像
  7. 专业课简单也要搞到出题老师的讲义(什么格雷码看见当场傻眼了,幸好哥聪明还是算出来了)

那些点滴:

  • 冬天晚上回宿舍的路上
  • 看着那淡蓝的天狼星和亮黄的木星
  • 我总是觉得时间能静止就好了
  • 能多背点政治的八股文
  • 能多算道变态的数学题
  • 能多看篇洋人的小文章
  • 荣辱、新文化,塌蟆多事
  • 欧拉、雪夫爷,难记难用
  • Sincerely Li Ming,万年不变
  • 到了考场,萦绕耳边的话
  • 不是答案的ABCD
  • 而是式安爷爷说的
  • 该生不适宜当研究生
  • 撑住,为了房子!妹子!票子!
  • 图书馆里没素质的同学
  • 可能不会再有那种烦了
  • 清真食堂里辣辣的牛肉
  • 也许吃着没有以前赶了
  • 一起考研的兄弟姐妹们
  • 从此各奔东西
  • 还有夏热冬冷的寝室
  • 不肯放水的老师
  • 近乎疯狂地做题
  • 这些记忆慢慢模糊
  • 像本子上的铅笔迹
  • 美好但没人还想再写一遍
  • 南无阿弥托佛,让俺考上吧!