PHP文件上传处理类
昨晚研究PHP的文件上传方面的东西,研究到凌晨3点多,终于研究出这个文件上传处理类。昨晚写了一半,下午再把剩下的写完。测试了一下,暂时没发现什么问题。包括批量上传文件,给图片添加水印,生成图像缩略图等功能,附件目录可使用日期参数自定义格式,注释已经写得很清楚了,这里就不再啰嗦。先把代码贴出来分享一下吧:
路漫漫其修远兮,吾将上下而求索
昨晚研究PHP的文件上传方面的东西,研究到凌晨3点多,终于研究出这个文件上传处理类。昨晚写了一半,下午再把剩下的写完。测试了一下,暂时没发现什么问题。包括批量上传文件,给图片添加水印,生成图像缩略图等功能,附件目录可使用日期参数自定义格式,注释已经写得很清楚了,这里就不再啰嗦。先把代码贴出来分享一下吧:
JBLOG在开发的过程中,对性能的优化做了不少工作。为了尽量减少不必要的数据库查询,我对一些数据进行了缓存和静态化处理。
缓存的原理:把一些经常要用到但又很少改动的数据以数组或其它形式存储到一个独立的PHP文件中,然后在需要用到的时候包含进来。
缓存的优点:能够大大减少数据库的查询次数,减轻数据库的压力,提高程序的执行效率。
JBLOG缓存的数据有:系统设置、博客分类、侧栏最新日志、最新评论、博客统计、日志归档、友情链接、标签等。通过缓存这些数据,执行一次页面数据库的查询次数从十几次减少到3次。
JBLOG中与缓存相关的函数保存在include目录下的cache.func.php里,主要函数:
在PHP中,用substr()函数截取带有中文字符串的话,可能会出现乱码,这是因为中西文一个字所占有的字节数不一样,而substr的长度参数是按照字节去算的。在GB2312编码时,一个中文占2个字节,英文为1个字节,而在UTF-8编码当中,一个中文可能占有2个或3个字节,英文或半角标点占1字节。
为解决这个问题,我找了很多资料,最终找到这么一段文字:
UTF-8编码的字符可能由1~3个字节组成, 具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)
第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符
第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符
否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。
刚设计了个博客模板,换上了,细节部分还没调整好,自我感觉良好o(∩_∩)o...哈哈。
前些天由于没时间,一直用着Z-BLOG的模板,现在自己设计一个了。原创作品,呵呵。
我在蓝色理想的设计作品集:http://case.blueidea.com/peoples/view/yilong1986/works/