Fising's Blog

all about web application development

清理 URL 地址中的参数

今天在处理国际化的过程中,由于要使用 lang GET 参数来指定语言,所以需要在当前页面地址中添加上形如 lang=en 的参数, 如:

http://www.adplat.com/selfservice/user/home.m?lang=en

但是,如果只是简单的在当前页面的 URL 后面添加,在一个页面来回切换语言的话,肯定会造成 URL 不美观。将会产生类似下面的 URL 地址:

http://www.adplat.com/selfservice/user/home.m?lang=en&lang=cn&lang=en&lang=cn&lang=cn

虽然不影响功能,但偶是不能接受滴。

于是就想到在添加参数之前,将已有的同名参数,从当前页面的 URL 中清理掉,方法大概两种,parse_str & http_build_query 和正则表达式。于是得到下面两个函数:

这样,调用以上两个函数其中之一,就可以得到较为清爽的 URL 地址,如:

clearQueryStringParamByPattern(‘http://www.adplat.com/selfservice/user/home.m?lang=en&lang=cn&lang=en&lang=cn&lang=cn’, ‘lang’);

将得到:

http://www.adplat.com/selfservice/user/home.m?

接下来就简单了:

这样就得到了最终的 URL 地址:

http://www.adplat.com/selfservice/user/home.m?lang=LANG_INDEX

稍作替换处理,就可以得到了各个语言的切换链接:

http://www.adplat.com/selfservice/user/home.m?lang=cn

http://www.adplat.com/selfservice/user/home.m?lang=en

http://www.adplat.com/selfservice/user/home.m?lang=jp

……

Comments are currently closed.