每一个完美布局后面都有一个龌龊的实现。
1.digg.com分页
对a标签进行float布局,优点不知道,缺点不知道怎么居中布局。
<style type=text/css>
.pages {text-align:center; margin:0 auto;}
.pages a {
display: block;
float: left;
padding: 0.2em 0.5em;
margin-right: 0.1em;
border: #9aafe5 1px solid;
}
.pages a:hover { border-color: #2e6ab1;text-decoration: none;}
.pages a.nextprev {font-weight: bold}
.pages span {
display: block;
float: left;
border: #fff 1px solid;
padding:0.2em 0.5em;
margin-right: 0.1em;
}
.pages span.current { border: #2e6ab1 1px solid; font-weight: bold; background:
#2e6ab1;color: #fff;}
.pages span.nextpre { border: #ddd 1px solid; color: #999; }
</style>
2.flickr.com分页
不用对a标签进行float布局,优点能居中,也能居左居右对齐。
<style type=text/css>
.pageContainer { text-align: center; padding:15px; border:1px solid red;}
.pager { font-size: 12px; margin-left: auto; margin-right: auto;}
.pager a {
padding: 4px 6px;
border: solid 1px #9AAFE5;
background: #fff;
text-decoration: none;
margin:0 }
.pager a:hover {color: #105CB6; border-color: #2E6AB1; text-decoration: none;}
.pager a.nextprev {
margin-right: 20px;
padding:4px 6px;
*padding-bottom:2px;
border: #9AAFE5 1px solid;
color: #105CB6;
font-weight:bold;}
.pager span.current {
padding: 5px 6px;
border-color: #2E6AB1;
font-weight: bold;
background: #2E6AB1;
color: #fff;}
.pager span.nextprev {
margin-left: 20px;
padding: 4px 6px;
*padding-bottom:2px;
border: #ddd 1px solid;
color: #999; }
</style>
以上代码在IE5.5,IE6,IE7以及新版的Opera、Firefox和Netscape下表现一致。IE5能显示基本效果,其他没试过,也没什么必要。
演示例子:http://www.panweizeng.com/others/example/two_style_for_paging.html
昨天憋了一下午也没搞定,今天早上终于解决了多行匹配的问题。
protected static string parseHtml(string html)
{
string clearScriptPattern = @"<\s*script[^>]*>(.|\n)*?<\/\s*script\s*>“;//前面去掉空格,中间(.|\n)*?为非贪婪匹配
string clearStylePattern = @”<\s*style\s*>(.|\n)*?\s*style\s*>“;
string clearHtmlPattern = @”<[^>]*>”;
string clearSpacePattern = @” | |\s”;
RegexOptions options = RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Compiled;
string parseResult = Regex.Replace(html, clearScriptPattern, “”, options);
parseResult = Regex.Replace(parseResult, clearStylePattern, “”, options);
parseResult = Regex.Replace(parseResult, clearHtmlPattern, “”, options);
parseResult = Regex.Replace(parseResult, clearSpacePattern, ” “, options);
return parseResult;
}
推荐一个代码重构的工具Refactor!™ Pro,如果想自己的代码写得漂亮一点,用它没错。
自从若干年前猕猴桃师哥强烈推荐之后就一直想看,今天终于把这个任务完成。

mysql数据库迁移的时候遇到问题最多一般都是编码问题。从3.x版本迁移到4.x版本,4.x升级到5.x版本,或者同版本之间都会遇到。使用外国开源软件比如wordpress和movabletype架设blog的朋友一定深有体会。网上已经有很多介绍各种对应解决方法的文章,用搜索引擎就可以搜到。我的情况是这样的,mysql数据库里面,安装的时候是latin编码,后台管理程序和前面生成的页面都是正常的编码,但是用phpmyadmin管理数据或者导出备份的时候都是乱码。
解决方法非常简单:
mysqldump -u username -h somehost -p --compatible=mysql40 db_name > temp.sql
- 用phpmyadmin清空数据库并设置数据库整理为utf8_general_ci
mysql -u username -h somehost -p --default-character-set=utf8 db_name < temp.sql
当然如果你有root这样的牛账号,可以直接看小桥的文章。这里compatible=mysql40参数的意思是导出的数据库兼容4.0.x版本以及以下3.2.x版本的mysql数据库。至于为什么采用这个参数,看这篇文章http://www.elaguan.net/article.asp?id=119,有点长,而且……越看越晕。然后在相关web程序连接数据库query之前要记得先执行一下:SET NAMES ‘utf8′。
另外,我刚刚试着安装了movabletype的beta4版本,程序界面上确实非常web2.0,渐变的背景,圆润的按钮,尤其是那个“Write Entry”令人印象深刻。由于是beta版本,相对于精致且稳定的3系列版本,稍微有点糙了。喜欢赶潮流的同学可以不用考虑立即升级安装(安装前记得备份数据),不喜欢瞎弄的同学还是出稳定版本的mt4以后吧,或者继续用mt3。


如果你像我一样无聊,偶尔也能蹦出一些思想的火花(文思如尿崩,谁与我争峰?),对自己的幽默感非常自信,喜欢叽里咕噜但是又不能当着人家面唠叨,那么来试试饭否多康母。饭否.com是美国twitter的C2C(Copy to China)版本,站名取自“廉颇老矣,尚能饭否”。相比twritter,饭否在用户体验方面也许要更好一些,字比较大,而且还是浅显易懂的中文,提供的插件也比twitter更好一些。twitter上的用户来自世界各地,也带来了世界各地的鸟语,你要是想看其他人在干什么,很抱歉,可能大半看不懂。饭否就不一样了,基本都中文,真亲切。我非常看好这种应用,写blog还不如叽里咕噜来得自然而且不用经过大脑,短信、网页、MSN都是你的写作工具,当然饭否能发展到怎么样还看饭否开发团队的努力,未来肯定很多竞争对手要分一杯羹。期待饭否Map这样的应用尽快出来,饭否或者第三方开发都可以。twitter的map做得不错,但是我不喜欢看到鸟语,希望饭否能有一个中国的地图,然后还可以细分到北京这样的城市。想象一下,假如你在北京地图上看到几十个人说北京下雨了,那么你可以断定北京肯定下雨了(有个成语叫三人成虎嘛),又假如有一千人在说股票涨了……伟大的网警也可以实时监控人民的思想和文化导向,这种数据绝对比窃听电话的数据来得准确。如果喜欢饭否,麻烦也帮忙宣传一下,发给你IM(QQ、MSN或者其它)上和你臭味相投的朋友。每个月的短信发不完的话,那就捐给饭否吧。我很后悔买了索尼爱立信的J210c,发短信实在是太痛苦了。