PHP的数据级缓存

有个说法:CACHE FOR CASH。

可见CACHE(缓存)对于降低服务器压力、减少硬件成本、提高程序性能有非常重要的意义。

从缓存的范围来划分,一般缓存有两种:页面级的缓存和数据级的缓存。

下面贴一个MEETTEA项目的数据级缓存的示例。

优点:可以设置过期的时间或永不过期;可以储存任何一种变量。

使用方法:


$dc = new dataCache();

/**key,相当于数组的KEY,对应了储存的值;$value,可以是任何一个PHP变量;1000,是过期的秒数,最长是5位,就是一天的秒数,0表示永不过期

***/

$dc->C('key',$value,1000);

#获取值,如果是false说明值过期或缓存已清理。

$value = $dc->C('key');

 

如果将这段代码应用到你的项目中,尚需略做修改,主要是数据的缓存目录、写入、读出数据的函数以及几个常量。

相信你看过之后就明白了。

» 阅读全文

jquery or YUI ?

以前我在丫丫SOFT讨论的一篇文章:

略略深入学习了点YUI,终于有了点小感觉。
使用jquery or YUI ?
有人形容jquery是汇编而YUI是VB。
此言不虚。
YUI的特性是体积大而且功能齐全它的代码经过了大量的实践与使用,被证明是可靠的。统一的UI风格,齐全的功能,稳定,都是它的优点。
Jquery呢,小巧,插件众多,灵活。
那么什么场合用jquery什么场合用YUI?
窃以为,以下场合适合YUI:
企业订单、超大型网站、WEB形式的应用程序
总之,要求开发速度、运行的稳定性大于打开速度或者拥有CDN的网站。
以下场合适合jquery:
小型网站、垃圾网站(看一眼后就不再回来的网站)、界面定制性要求较高的
总之,也就是要求从轮子开始造起的网站,或者开发者自己想熟悉js底层的。

 

» 阅读全文

PHP的字符处理

PHP做开发,总是容易遇上字符串的问题。找了一篇不错的PHP下操作字符串的文章作总结。

» 阅读全文

.htaccess的flags

随便贴一段重写规则:

RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]

 RewriteCond %{HTTP_HOST} !^$

RewriteCond %{SERVER_PORT} !^80$

RewriteRule ^/(.*) http://fully.qualified.domain.name:%{SERVER_PORT}/$1 [L,R]

 

可以发现后面[]内有几个字符,比如NC,这些都是什么意思呢?

 NC: no case,就是说不区分大小写

R:redirect,重定向

F:forbidden,禁止访问

L:last,这是最后一条规则,exit吧。

» 阅读全文

一些关于PHP+MYSQL的细节

1、SQL语句过长:用表的别名,这是哥哥告诉我的。。。

此外还想到用PHP的"",中间加入换行符使得SQL代码清晰。

 2、将常用的功能写成类来调用。

这样使得程序的可重用性得到提高。

 3、强制规定使用环境为PHP5.这样可以使得可以使用PHP5下的功能。

4、使用__autoload函数加载类。代码简洁优雅。

5、mysql下没有top,可以用limit来代替。

 6、smarty模板的文件报错:

unlink(D:\meettea\web\viald\../data/smarty/templates_c\%%96^96E^96E0A956%%head.tpl.htm.php) [function.unlink]: No such file or directory

文件为:internals/core.write_file.php,代码如下:

if (DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file, $params['filename'])) {

@unlink($params['filename']);

@rename($_tmp_file, $params['filename']);

 }

这是因为unlink时这个文件不存在!

(虽然用@可以屏蔽,但是调试模式下仍旧能得到通知)

作以下修改就可以通过了(加了个文件是否存在的判断)

if (DIRECTORY_SEPARATOR == '\\' || !@rename($_tmp_file, $params['filename'])) {

file_exists($params['filename'])&&unlink($params['filename']);

 @rename($_tmp_file, $params['filename']);

 }

 7、有时zend studio6.0经常对一些不符合常规的编码方式提出警告,可以在项目里设置不提示。

但是如果它提示了,一定是合理的。

这是使用zend studio6.0的理由:可以减少调试时间,增加一次通过的几率。

 

 OK,这两天的收获大致就是这些。一些工作展开中。进展正常。

(近期严打期间,准备下网站的备案)

» 阅读全文

@meettea.com邮局建立

启用了google企业邮局,以后就可以使用@meettea.com的域名作为邮箱了。

而且,作为G级邮箱风气开创者,google的技术与服务是OK的。

同时,与google其他服务套件协作产生的能量是惊人的。

这在丫丫软件开发团队已经得到验证。

 本人mail:shiny@meettea.com

» 阅读全文

data or date ?

一直把data与date搞混,尤其是那个SQL:UPDATE。

想想,UPDATE,不就是更新数据么,按理说应该是updata才对。

可是为什么是update呢?

看来,Chinese-English害人不浅。

» 阅读全文

windows下apache2.2+php5.2+mysql5.1的配置

原本以为在windows不支持.htaccess,后来仔细端详,似乎.htaccess的支持是与操作系统无关而与apache是否开启mod_rewrite有关。

所以研究了一下,尝试了wamp的配置。

遇上了两个问题:

1、明明php.ini里设置了加载mysql.dll,却不支持mysql扩展。

2、mod_rewrite怎么配置啊。。。。

解决如下:

1、mysql.dll有它所依赖的dll,除了保证mysql.dll在path里,还需要保证它的依赖项也在path里。

具体哪些依赖关系,见PHP根目录下的snapshot.txt。

或者,使用安装版的PHP可以自己选定自己需要的扩展。

但系统重装之后一般就失效了。。。

2、除了在apache的httpd.conf里#LoadModule rewrite_module modules/mod_rewrite.so,将#删除之外,还要在httpd.conf里查找AllowOverride none,(需要.htaccess生效的目录)修改成 AllowOverride All。

可以使用替换。 OK。

这样wamp环境配置完毕。还可以仔细研究下httpd.conf、php.ini,来对开发环境作进一步定制,比如404页面,主目录位置等等。。。

» 阅读全文

Records:7912345678910