RewriteRule里正则表达式减号字符的顺序问题

Posted in 杂项 on January 20th, 2010 by Adam

在用URLRewrite的时候,PHP正则匹配(preg_match)的时候,常常有一个容易忽略的小问题:

有效:RewriteRule ([0-9a-zA-Z\+_\.\-]{3,})/$ /article\-$1.html [L]
无效:RewriteRule ([0-9a-zA-Z\-\+_\.]{3,})/$ /article\-$1.html [L]

仅仅是因为方括号内减号(-)字符顺序的不同,让正则匹配失效。
但这又不是普遍的问题,只是在个别虚拟主机上出现。

下面的解释可以帮我们释疑:

正则表达式通过使用元字符来编码在模式中,元字符不代表其自身,它们用一些特殊的方式来解析。
减号(-)字符可以在字符类中指定一个字符范围。例如,[d-m] 匹配了 d 和 m 之间的任何字符,包括两者。如果字符类中需要减号本身,则必须用反斜线转义或者放到一个不能被解释为指定范围的位置,典型的位置是字符类中的第一个或最后一个字符。

Tags: ,

我被中国电信“省钱”

Posted in 杂项 on September 10th, 2009 by Adam

现在家里用的是3M带宽的E8套餐(228元全包),其中包含价值25元免费无线宽带,后来接到中国电信电话说加1元就可以升级到带宽4M的E9套餐,于是很爽快的升级了。最近仔细看了看收到的电信收费收据,居然还扣了我25元无线宽带费和5元无线收音机。一个月就这样被省了30块大洋,真是一不留神啊~!

气愤之余上网到电信服务厅投诉:

欢迎使用中国电信在线客服,客服人员热忱为您服务!为了您的信息安全,请不要在此对话框输入银行帐号、密码等保密资料。
工号(gzes25)正在为您服务!
gzes25: 你好!请问有什么需要帮忙吗?
8×××××××: 我是从E8套餐加1元升级到E9套餐,当时工作人员说只需要加一元钱 但是现在E9套餐居然还收我25元无线宽带费+5元无线收音机,为什么?
8×××××××: ??
8×××××××: 这算哪门子在线服务?
gzes25: 对不起,让您久等。
gzes25: 很抱歉,在线客服只提供网站导航,为了更好解答您的问题。请您到本网站的客户服务->业务咨询提出您的问题,谢谢
……

就这样被客服了。。。

2009-09-11日更新:电信人员承诺退还之前扣掉的4个月无线宽带费用,一共100元~~1188455801363

Tags:

GoogleAppEngine和GoogleCode继续测试

Posted in 杂项 on September 3rd, 2009 by Adam

GoogleAppEngine测试
去年申请GoogleAppEngine帐号,用Python写了个简单的TwitterUpdate到现在,已经有段时间了。现在希望那个有时间把它完善一下,也正好满足Twitter被墙后的需要。
GoogleAppEngine主要命令:
devserver.py yourapp/ 启动运行环境
appcfg.py –email=zhaiduo@gmail.com update yourapp/ 提交

出现的问题:
AppConfigNotFoundError – 注意文件名不要错误: devserver.py yourapp/
< type ‘exceptions.SyntaxError’ >: Non-ASCII character ……, but no encoding declared; – 中文编码问题

办法:添加到Python文件头:# -*- coding:utf-8 -*- #必须在第一行或者第二行

GoogleCode测试
选用Subversion作为更新方式,工具用的是Tortoisesvn

为什么要测试GoogleAppEngine和GoogleCode这两种Google提供服务?
1. 了解Google开发项目的程序和过程,以提高自己的项目维护、管理和开发能力。
2. 熟悉GoogleAppEngine,SVN和Python。
3. 可以当作免费存储空间。(AppEngine是限制流量:每天下载量可以到50G; GoogleCode:单个文件最大: 100 MB. 共2G空间 )

Tags: , , ,
RSS Feed