Archive for the 'WEB开发' Category

解决StatTraq的summary页面的中文显示问题

Saturday, October 1st, 2005

昨天说的Wordpress统计插件的显示中文问题,早上在summary页面中会乱码,而在page_views中不会乱码,于是打开源代码看了看,发现在wp-stattraq\reporter中的summary.php的140行,显示标题方法为

< ?php echo htmlentities(stripslashes($row->post_title));?>

而在page_views.php的126行输出标题却是支持打出:$post_title

应该就是 htmlentities,stripslashes两个函数的问题了,经过测试是由于htmlentities函数引起的。
知道原因解决就很简单了
解决方法一,我们就不用这个htmlentities功能了:
改summary.php的140行为

< ?php echo stripslashes($row->post_title);?>

就可以在summary中正确显示中文了。
那这是什么原因引起的呢?为什么stripslashes没问题,而htmlentities会有问题呢?让我们看看php文档:
http://cn.php.net/manual/zh/function.htmlentities.php

http://cn.php.net/manual/zh/function.htmlspecialchars.php
发现这么一段话:The default character set is ISO-8859-1,Support for this third argument was added in PHP 4.1.0.
原来默认编码是ISO-8859-1,这两函数支持设置编码,我们只要改一下编码应该就可以正常显示了,
所以解决方法二,保留htmlentities功能吧:

< ?php
echo htmlentities(stripslashes($row->post_title),ENT_NOQUOTES,”UTF-88243);
?>

注:上面第三个参数应该为:UTF-8,不知道为什么显示会有问题。
ENT_NOQUOTES:表示不转换”和’了
注:我Wordpress设置的默认编码为UTF-8
有一个疑问:
为什么stripslashes()处理没问题,而htmlentities呢?
stripslashes只是转换\\ ,\’为 \和’之类的功能,所处理的字符都为ascii,而utf-8兼容ascii。
htmlentities转换各种html标记为代码(怎么描述呢?),而html标记这些东西也应该为ascii吧??难道我想错了?
修改前:

修改后:

呵呵,可能这个系统的这两个功能不是同一个人写的,要不怎么在处理标题上有这么大不一致性呢。虽然这种事情在所难免(即使同一个人开发的),不过对于系统功能一致性的表现上还是需要多注意的。

装了个wordpress统计插件.

Saturday, October 1st, 2005

虽然重新开站两个月没什么用户访问,大部分是自己点的,不过原来还是申请了个51.la的统计功能,来满足自己那么点虚荣心,至少每天看着不多的人来看自己写的内容,或者说自己的写的内容对于别人有一点帮助的话那么还是有一点点欣慰的,至少还有点动力写下去,不过51.la的确定不好用,比如广告很多啊,速度很慢啊,经常不能访问啊,之类了,
还有更重要的是不能统计rss/atom方式的访问啊,所有今天上网找了个wordpress的统计插件装了一下感觉感觉还不错(有一点不大满意的地方就是在我的机子上(1024*768)显示时页面内容有点错位):
我用的是:StatTraq,
对于wp1.5+的用户可用,安装也很简单:
1.下载安装文件,解压,
2.直接将里面的 wp-content wp-stattraq 目录上传到主机上wp的根目录(覆盖),
3.通过http://WORDPRESS PATH/wp-stattraq/stattraq-install.php 建立表
4.然后到wp管理界面中的Plugins激活插件.
最后:就可以通http://WORDPRESS PATH/wp-stattraq/查看您blog的访问统计了。
官方demo–>看这里
—————-
好像有中文乱码问题,现在还知道如何解决,知道的朋友请告知一下,谢谢。
update
———————
中文问题已经解决见:
解决StatTraq的summary页面的中文显示问题

FireFox插件编写问题一:如何在插件代码中获取选中文字

Friday, September 30th, 2005

本来说写FireFox的插件编写教程,一直没动手,这几天忙于工作,过几天一定会写的。今天遇到一个问题后来找到解决办法,先说说:
就是在浏览器选中一段文字,我们要如何在获取这段选中的文字呢?
IE浏览的页面中很简单:
window.document.selection.createRange().text;
FireFox浏览的页面中也很简单
function getSel()
{
var txt = ‘’;
if (window.getSelection)
{
txt = window.getSelection();
}
else if (document.getSelection)
{
txt = document.getSelection();
}
else if (document.selection)
{
txt = document.selection.createRange().text;
}
return txt;
}
后来我查了查文档发现,在FF浏览的页面中只需要:txt = window.getSelection();中就可以了.
那么上面的代码在FireFox插件的.js文件中是否可行呢?答案是不行(我验证过的噢!)。
为什么呢?因为FireFox是多TAB的方式了(十分详细的说明我也没找到,就简单的看到这句)
那怎么解决呢?
使用以下函数就可以了:
function getSel()
{
var txt = ‘’;
var focusedWindow = document.commandDispatcher.focusedWindow;
txt = focusedWindow.getSelection().toString();
return txt;
}
以上方法在我的FF1.5中测试通过,根据说明在旧版本上一样可用(未经过验证)
这个解决方法来自于
http://weblogs.mozillazine.org/asa/archives/007945.html
的讨论,有兴趣的朋友可以去看一下。

Hey!guys do not forget your footer.

Sunday, September 18th, 2005

Hey!guys do not forget your footer.
footer?是的footer也就是页面底部。是不是很奇怪,无数的人们讨论如何制作banner,navigation,sidebar而我却在这讨论footer。呵呵,让我们先来看看,当你将网页做好后发布到internet上,人们买来计算机,连上网络,打开浏览器,从某些地方得到你网站的地址或者链接,然后做什么呢?是的阅读。

版权声明:可以任意转载,转载时请务必标明文章原始出处、作者及本声明http://www.upulife.com Hjleochen@hotmail.com
怎么阅读呢?从banner开始往下,或者看看sidebar或者阅读正文内容,或者读到一半没什么兴趣了跳过一段、两段。明白了吗?人们通过各种途径自上而上的阅读最后到哪呢。对,到了页面底部,也是我要说的footer或bottom。而这里是什么呢?版权声明(copyRight)大部份网站是吧?幸运一点的话是一个底部导航栏。相信大家都已经习以为常了吧?
而现在在我看来这是极为愚蠢的做法,为什么呢?因为我说过一个页面只是网站事务的一个步骤,这个页面的目标是带领人们进入事务的一下步,能阅读到页面底部而不是打开页面看一眼然后离开的人们对你而言是极具价值的,人家辛辛苦苦的从最上面开始读起到了要结束的时候正是你应该奖赏人家的时候而你却放出一句冷冰冰的“版权所有,盗版必究”的话,不是愚蠢是什么?
那么让我们看看一般页面的布局吧,
你的banner上摆满了网站名称,口号或是广告,然后是导航栏,然后下面的左边或是右边是所谓的sidebar,放上一些导航栏放不下或是跟当前页面内容紧密相关的东西,而面的主要地方放置正文。底部是所谓的版权声明或是导航。
按照前面所说的网站是由多个步骤组成的一个事务的话(将另写一篇文章详细说明),人们完成了当前的步骤来到了页面的底部,那么应该是进入下一步的开始,这时你一定要把握机会,留住她引导她进入事务的下一个步骤,而不要让她看到页面内容已经结束而离开,所以这是整个页面中除了内容以外最有价值的一块地方了。
简单来讲,比如你的网站只为了增加访问量来增加广告显示次数而获取收入吧,人们从页面的头部开始阅读到了底部,正是准备好做下一个行动的时候。而这一部分用户是对你而言正是有重要价值的(前面说过),你不应该就这么放她离开,而应该在这时候奖赏他们,怎么奖赏呢?或者他们要搜索什么,或者要阅读相关的内容,或者……而你要做的就是给她们想要的东西。放上搜索框,相关内容,对她而言更有价值的东西,至少是一个小笑话,而不是冷冷的版权声明,不是吧。
所以再说一次不要放过你的页面底部,它真的是非常有价值的一块地方。
呵呵,思路还不是很明确,写得有点乱。后面将陆续推出关于网站对用户优化的内容(是针对用户噢,而不是针对技术的优化),敬请留意www.upulife.com,谢谢
H.JLeochen@hotmail.com
2005/09/18

Apache上配置虚拟主机

Wednesday, August 10th, 2005

原来用apache一直只有一个主机的用,没配置过这东西,今天配置Ruby on Rails时需要保留原来的主机所以看了看相关文档,几经尝试成功了。
参考文档:http://plugins.discuz.net/handbook/apache2/vhosts/examples.html
原来不很明白怎么回事,后来认真想了想,主机一台主机跑apache服务器,多个域名指向这台主机IP(还有多种情况参见文档),不同域名指向不同虚拟主机的内容,就这么简单啦。以下是我的配置。

NameVirtualHost *
<virtualhost *>
ServerName www.cdp.com
DocumentRoot “E:/apache/Apache2/htdocs”
</virtualhost>
<virtualhost *>
ServerName www.leo.com
DocumentRoot “F:/ruby/work/demo/public”
<directory “F:/ruby/work/demo/public”>
Options ExecCGI FollowSymLinks
AllowOverride all
Allow from all
Order allow,deny
AddHandler cgi-script .cgi
AddHandler fastcgi-script .fcgi
</directory>
</virtualhost>

就是配置了两台虚拟主机:www.leo.com www.cdp.com
leo.com指向Rails的目录,cdp.com指向原来apache的发布目录。
可以设置:C:\WINDOWS\system32\drivers\etc\hosts 文件增加:
127.0.0.1 www.leo.com
127.0.0.1 www.cdp.com
(就是把www.leo.com www.cdp.com两个域名指向本机)
来测试是否成功。
这时如果访问leo.com应该是显示Rails的网站,如果访问cdp.com应该是显示htdocs中的文件,
你配置成功了吗?

给页面加音乐

Wednesday, August 10th, 2005

在看别人的BLOG的时候,耳边旁着好听的音乐,感觉很不错哦,就想看看别人是怎么加进去的。查了一下源代码,发现很简单,只要加一句话就能做到。如下:
<embed id=”olplayer” src=”d:/mp3/01.wma” in=”" the=”" loop=”true” autostart=”true” />
这里的src就是要加载的歌,正常歌曲应该在服务器上,所以地址就是http://….. 这里我只是自己做测试,写了个本地地址。如果想在页面中出现播放器,只要加上width=”365″ height=”45″即可。

WebWork服务器端Validation的实现.

Saturday, July 16th, 2005

系统测试。