WP的GZIP选项消失了
Tuesday, April 29th, 2008升级到2.5已经有一段时间了,但在后台却找不到相应的选项开启GZIP,原来在新版本的WP中已经取消了GZIP开启的选项,交由服务器决定是否开启GZIP,换句话说如果服务器不开启的话你的BLOG就不会开启GZIP了,GZIP看到ZIP就知道是压缩,压缩有什么好处,就是节约下载时间,因为压缩了大小,文件小了,自然下载时间就短了,当然服务器的流量也减少了不少。
开启GZIP的方法:
如果你的服务器使用的是Apache2的话可以使用mod_deflate组件部署GZIP,当然你也可以下载这个插件来增加开启GZIP的选项,下载激活后可以在Setting -> Reading里面找到相应的选项。
p.s: 至于你的BLOG是否开启了GZIP可以到这个地址查询。
这段时间学习php的总结
Monday, March 31st, 2008刚开始学php,虽然还是不断的查手册,不过学习还是比较快的,而且是一边学习一边做项目,以前一直用asp写程序,我是尽量是MVC模式写的,所以转到php也是这样这样写。我学php是这样开始的,公司有一个人才招聘的项目,已经在进行之中,是用FLEAPHP框架作为基础的,为了开发的方便我一开始就使用FLEAPHP来写项目,在看源代码的基础上结合PHP手册就已经开始写了,碰到的问题有很多:
连接符号,在asp我是用jscript写的,连接的符号是用“+”,但是php里面连接符是“.”,开始的时候不适应,写完后一大推错误。
编码问题,到现在我还没有完全解决,程序用的是UTF-8,遍历文件目录得到的文件名是GBK的,要转成UTF-8才能存入数据库,用iconv函数转,据说不能用在linux服务器上,手头上没有 linux所以不能验证是不是真的。
文件下载问题,用php实现文件的强制下载,我估计也是编码的原因,用FLEAPHP自带的SendFile类一直不能成功,最后自己另外写个小程序搞好的。
不知道是什么问题在IIS环境下,FLEAPHP的fileupload类不能上传文件,我估计这和权限有关,在APMServ下就可以。
还有很多很多的问题,可能是我不太熟吧,要比别人花更多的时间去解决。
用FleaPhp做开发
Thursday, February 21st, 2008刚开始接触Fleaphp这个php框架,看了一下,发现挺容易入手的,而且同事也正在用这个做开发,大家统一一下也挺好的,这段时间公司发生了很多事,由于某些原因,又要做一下开发了,项目不太,刚好可以用fleaphp练习一下。
看了几天教程,有了大概的了解,项目暂地还没有一下正式的名称,所以我起了个代号,最近kira很受欢迎,所以项目我起名叫Project Kira,show一下暂定的目录结构:
开发的工具,包括自家hp笔记本一台、APMServ运行环境、MySql5、Zend Studio 5.5、Firefox、还有IE7,暂时还没到网页的调试,不需要多个浏览器测试,这样随时想到就可以做了,不过最好就是有网络啦,租的地方只有一户有宽带,还是电信512M三、四个人分,速度不敢恭维,正在托朋友找2M 300个小时的,才120块,加上电话停机5块钱,才125块。
在开发上遇到的问题,以后会在这里和大家分享一下。
CSS 书写顺序建议
Friday, November 30th, 2007来自Mozilla的CSS书写规范建议:
//显示属性
display
list-style
position
float
clear
//自身属性
width
height
margin
padding
border
background
//文本属性
color
font
text-decoration
text-align
vertical-align
white-space
other text
content
浏览器 Hack:
test:791px!important; /*FF Hack*/
*test:785px!important; /*IE7 Hack*/
test:777px; /*IE7以下*/
CSS 属性表 (简表)
Thursday, September 13th, 2007属性名称 属性含义 属性值
字体属性(Font)
font-family 使用什么字体 所有的字体
font-style 字体是否斜体 Normal、italic、oblique
font-variant 是否用小体大写 Normal、small-caps
font-weight 字体的粗细 Normal、bold、bolder、lithter等
font-size 字体的大小 Absolute-size、relative-size、length、percentage等
颜色和背景属性
Color 定义前景色 颜色
Background-color 定义背景色 颜色
Background-image 定义背景图案 路径
Background-repeat 重复方式 Repeat-x、repeat-y、no-repeat
Background-attachment 设置滚动 Scroll、Fixed
Background-position 初始位置 Percentage、length、top、left、right、bottom等
文本属性
Word-spacing 单词之间的间距 Normal <length>
Letter-spacing 字母之间的间距 Normal <length>
Text-decoration 文字的装饰样式 None|underline|overline|line-through|blink
Vertical-align 垂直方向的位置 Baseline|sub|super|top|text-top|middle|bottom|text-bottom
Text-transform 文本转换 Capitalize|uppercase|lowercase|none
Text-align 对齐方式 Left|right|center|justify
Text-indent 首行的缩进方式 <length>|<percentage>
Line-height 文本的行高 Normal|<number>|<length>|<percentage>
边距属性
Margin-top 顶端边距 Length|percentage|auto
Margin-right 右侧边距 Length|percentage|auto
Margin-bottom 底端边距 Length|percentage|auto
Margin-left 左侧边距 Length|percentage|auto
填充距属性
Padding-top 顶端填充距 Length|percentage
Padding-right 右侧填充距 Length|percentage
Padding-bottom 底端填充距 Length|percentage
Padding-left 左侧填充距 Length|percentage
边框属性
Border-top-width 顶端边框宽度 Thin|medium|thick|length
Border-right-width 右侧边框宽度 Thin|medium|thick|length
Border-bottom-width 底端边框宽度 Thin|medium|thick|length
Border-left-width 左侧边框宽度 Thin|medium|thick|length
Border-width 一次定义宽度 Thin|medium|thick|length
Border-color 设置边框颜色 Color
Border-style 设置边框样式 None|dotted|dash|solid等
Border-top 一次定义顶端 Border-top-width|color等
Border-right 一次定义右侧 Border-top-width|color等
Border-bottom 一次定义底端 Border-top-width|color等
Border-left 一次定义左侧 Border-top-width|color等
Width 定义宽度属性 Length|percentage|auto
Height 定义高度属性 Length|auto
Float 文字环绕 Left|right|none
Clear 哪一边环绕 Left|right|none|both
分级属性
Display 定义是否显示 Block、inline、list-item、none
White-space 怎样处理空白 Normal、pre、nowrap
List-style-type 加项目编号 Disc、circle、square等
List-style-image 加图案 <url>|none
List-style-position 第二行起始位置 Inside、outside
List-style 一次定义列表 <keyword>|<position>|<url>
鼠标 ( Cursor ) 属性
Auto 自动
Crosshair 定位“十”字
Default 默认指针
Hand 手形
Move 移动
e-resize 箭头朝右方
Ne-resize 箭头朝右上方
Nw-resize 箭头朝左上方
n-resize 箭头朝上方
Se-resize 箭头朝右下方
Sw-resize 箭头朝左下方
s-resize 箭头朝下方
w-resize 箭头朝左方
Text 文本“I”形
Wait 等待
Help 帮助
背景层自适应高度
Wednesday, September 12th, 20071
<div style=”overflow:hidden; _height:1%; border:1px#333 solid; width:600px; margin:auto;”>
<div style=”width:300px; float:left; height:100px; background:#f60;”></div>
<div style=”width:300px; float:left; height:300px; background:#ccc;”></div>
</div>
2
<div class=”m clear”>
<div>左</div>
<div>右</div>
</div>
.clear:after {
content: “.”;
display: block;
height: 0;
clear: both;
visibility: hidden;
}
关于after可以参考:http://www.blueidea.com/tech/web/2005/3065.asp
测试一下Audio Player插件
Tuesday, July 10th, 2007针对浏览器的hack
Tuesday, December 5th, 2006最近一直使用Firefox作为主要的浏览器,虽然还不是十分的好用,幸好有ie tab,Firefox不能浏览器的页面就用FF,现在已经习惯用Div+Css进行布局了,也逐渐上手,不过各浏览器之前还是有区别的,现在IE7也出来了,相信日后IE7的用户会超过IE6的。
IE7修复了一些BUG,也增加了一些选择符的支持,所以现在诸如 *html {} 和 html>body {} 等针对 IE 隐藏或显示的 hack 都会在 IE7 中失效,所以在网上搜索了一些针对IE7的Hack,例如:
>body
html*
*+html
前两种是不合法的css写法,在标准浏览器中不支持,对于第三种 *+html,IE7 认为 html 前面的 DTD 声明也是一个元素,所以 html 会被选中,这三种方法中只有这一种方法是合法的 CSS 写法,也就是说可以通过校验器的验证,因此也是作者推荐的 hack 用法。
附上针对ie6,7和ff的hack
#example { color: #333; } /* Moz */
* html #example { color: #666; } /* IE6 */
*+html #example { color: #999; } /* IE7 */
用MVC模型引导你的WEB设计思路-第二版
Tuesday, May 30th, 2006习惯于过程式的开发,一直向往着面向对象。无奈半路出家人,没有一点内力基础,看了一大堆面向对象的书也只是看得一头雾水。对于MVC的概念也是偶然了解到的,感觉能和WEB开发结合起来让项目面向对象化。以下是我一点点心得。
先介绍一下MVC的概念:
MVC(Model-View-Controller),即把一个应用的输入、输出、处理流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
模型(Model):就是业务流程/状态的处理以及业务规则的制定。即是MVC的主要核心。
视图(View):代表用户交互界面,也就是Web的HTML界面。
控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。
以下以一个简单的留言板作为分析例子。
1)从上面的概念来看,留言板可以切成三部份。
模型(M):包含 数据库链接、生成数据集、数据库更新操作。
视图(V):包含 获取模型的数据集,将数据集内填充到各种显示界面内,如(留言板列表,管理控制页面,添加修改删除界面等一切用户看得到的页面。)
控制(C):包含 数据库更新的数据校验,将更新完毕后的结果转交给视图进行呈现。
2)三部份已经出来,下面是更进一步的细化。
模型(M)
数据链接:数据链接参数、链接失败处理。
数据操作:生成固定格式的数据集、运行单行SQL、解析固定格式的数据集更新数据库(内容包括有:留言记录,管理员帐号,系统设定)。
文件操作:将文件内部格式封成数据集,并附带读取写入文件操作。(内容包括有:留言板样式设定、版权设定、搜索引擎关键字设定、留言板标题设定)
视图(V)
数据显示:根据要求授权给控制器[C]向模型[M]请求数据集,然后根据数据集显示出界面。
操作结果显示:根据控制返回的数据资料决定显示的提示资料
具体资料包括有:
留言添加页:判断留言者是否管理员、判断本次留言是回复还是新建留言。
留言管理页:批量删除留言、查询留言、管理员帐号管理、系统设定等。
留言显示页:判断留言是否为管理员专用、判断本留言是否为管理员发布、是否允许回复、是否显示留言者的敏感资料、留言是否需要审核后再显示。
控制(C)
数据/文件操作:接收操作资料,校验数据是否符合条件,引用模型的生成数据集类生成指定数据集,然后交给相应的模型操作方法操作,并获取操作结果以预定好的格式转交给视图处理
3)系统基本上细化完毕,下一步就是将以上分析出来的东西封装成Class
模型(M):
数据库链接和数据操作可以封成一个Class。
数据库数据集的结构,可以引用Dictionary控件与数组完成。其间操作也可以封成一个Class具体可以仿造ASP.net中Dataset对象的部份机构。
文件操作部份封装成一个Class
文件结构定义可以封成一个Class以方便控制直接引用,然后转交给文件操作Class进行相应的操作。
视图(V):
视图部可均是以文件模式出现,也可以将部份代码封装后引用。也可以引用现有的模板类实现代码分离等。
控制(C):
数据校验:SQL注入防御处理、日文字符替换处理、特定常用校验正则式,这个是控制器常用的函数,可以封成Class也可以以函数型式存在独立文件,使用时直接引用。
数据/文件更新操作:由于直接操作,可以避免使用Class,而是以文件模式出现,每个文件处理模型(M)中的某个类。并完成控制(C)的工作。
视图[V]模型[C]链接器:接收视图[V]要求数据集的请求,将请求转换成模型[M]合适的SQL句,然后交给模型[M]数据集成生器生成数据集,然后返回给视图[V],这个处理比较麻烦,如果没必要作得太严谨的话可以直接使用字段名,并在视图[V]以SQL标准的条件句进向模型[M]请求数据。
疑:
视图[V]模型[C]链接器,对这个的设定我还是有点迟疑的。因为在MVC中,V对M的请求中是不需要C的掺和的,但是,这个链接器的操作确实很符合C的概念,所以这里我把它放在了控制器[C]里。或许他可以放至在视图[V]内。毕竟这个是视图[V]的事。这个就看每个人对MVC的理解了。
以上基本完成了留言板的结构分析与类的抽象,有不少的地方比较繁琐,甚至是啰嗦,一个留言板其实是没必要这样,不过,这个例子里作出来的不少Class可以直接使用在其它更大的项目中去,比如控制器[C]中的数据集请求转换器,校验部份、模型[M]中的数据库链接等,之所以遵循MVC模型进行编程不但是为了让程序设计更灵活,最重要一点是可以很快将项目拆开成一小块一小块,然后又将这些小块再折成更小的块,一直折到单个类的某个方法某个属性,等你完成这些小块代码后,那系统也就完成了。
其实这个已经是第二版,非常感谢蓝色经典里的5do8[老农],他看了我的第一版之后和我聊了不到十分钟,让我重新认识了MVC,更进一步的完善了这篇引导文章。我还在继续摸索中,也有可能会不断的更新这篇资料。希望对大家都有所帮助。
如果对上面的资料有什么想法和建议的可以到我的Blog找我,本篇文章的最新版可以到(http://blog.csdn.net/oyiboy/archive/2006/02/09/595164.aspx)查看。
