Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4157047
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类:

2009-12-26 23:15:46

status默认不支持中文的组名和用户名。

1、/lib/common.php,第409行,加上.[\pL\pN_\-\.]

  或者在这个地方定义一个:
  
    define('NICKNAME_FMT', VALIDATE_NUM.VALIDATE_ALPHA_LOWER.VALIDATE_CN);

    其中:VALIDATE_CN在Validate.php中定义UTF-8编码:
    define('VALIDATE_CN',  '\pL\pN_\-\.');

  这样可以保证可以使用中文组名,但是进不去组了,因为显示的部分仍然没有修改。

2、lib/router.php,245行左右,把“[a-zA-Z0-9]+”换成

    [\pL\pN_\-\.]+

  这样可以正常进入组,并且可以把“全名”“昵称”以及“别名”填写中文。但是URL部分仍然不能是中文。

3、Validate.php,第685行,把
((?:/(?:%[0-9a-f]{2}|[-a-z0-9_.!~*\'():@\&=+$,;])*)*/?)?
  改为:
 ((?:/(?:%[0-9a-f]{2}|[-a-z0-9_.!~*\'():@\&=+$,;]|[\pL\pN_\-\.])*)*/?)?
  并在688行的“$&xi”后加上一个“u”。

4、本质上应该是Validate类中没有一个中文和字符的函数,所以搜索Validate::string应该可以找到相关函数判断的地方。

5、还要把router.php里所有关于[a-zA-Z0-9]换成[\pL\pN_\-\.],否则会进不去组,组名不认识。
  同样还有用户名,如果用户名为中文,那么一样会出找不到地址。

6、修改Notice.php,有几处preg没有加/u参数,并且还要完成上面的替换,共5处。

7、还有一处错误需要修正:reply的时候,只要是中文用户名无法回复。这个问题在js/util.js中的290行左右,有一个javascript的正则,注意这个正则不支持pcre,不能用/u参数和\pL等,而要换成更通用的“匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]”。

8、提醒,不要忘了安装php5-curl、php5-gettext、pear。(因为没安装php5-curl,不能上传文件,又折腾了一个晚上-_-)


示例网站:
blog.chengzhangba.cn
阅读(2328) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~