转到正文

浪淘沙

静观己心,厚积薄发

存档

分类: PHP

SESSION 用百度百科的定义为:在计算机中,尤其是在网络应用中,称为“会话”。

SESSION分为客户端session和服务器端session。

当用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在 HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端。这个SessionID就是保存在客户端的,属于客户端Session。

其实客户端Session默认是以cookie的形式来存储的,所以当用户禁用了cookie的话,服务器端就得不到SessionID。这时我们可以使用url的方式来存储客户端Session。也就是将SessionID直接写在了url中,当然这种方法不常用。
我们经常说的session其实就是服务器端session。
继续阅读

原文地址:http://blog.csdn.net/alexdream/article/details/6120204

要判断客户端是否使用代理服务器,可以从客户端所发送的环境变量信息来判断。

具体来说,就是看HTTP_VIA字段,如果这个字段设置了,说明客户端使用了代理服务器。

匿名级别可以参考下表来判断。

给出一个应用例子,可以挂上代理试试效果: http://ip.mixsec.org/
继续阅读

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字 符串中 搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正 的函数,故把函数加上了双引号)。
1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。
2、$row[’id’] 的速度是$row[id]的7倍。
3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
4、在执行for循环之前确定最大循环数,不要每循环一次都计算最大值,最好运用foreach代替。
5、注销那些不用的变量尤其是大数组,以便释放内存。
6、尽量避免使用__get,__set,__autoload。
7、require_once()代价昂贵。
8、include文件时尽量使用绝对路径,因为它避免了PHP去include_path里查找文件的速度,解析操作系统路径所需的时间会更少。
9、如果你想知道脚本开始执行(译注:即服务器端收到客户端请求)的时刻,使用$_SERVER[‘REQUEST_TIME’]要好于time()。 继续阅读

LazyPHP

3月 30

原文地址:http://bbs.phpchina.com/thread-233224-1-1.html

github 地址: https://github.com/easychen/LazyPHP

LazyPHP(以下简称LP)是一个轻框架.

之所以开发这么一个框架,是因为其他框架给的太多。在高压力的情况下,ORM和盘根错节的对象树反而将简单的页面请求处理复杂化,在调试和性能上带来反面效果。

LP采用函数式接口封装对象,对内通过面向对象实现代码重用,对外则提供简明扼要的操作函数。开发者甚至不用理解面向对象就能很好的使用,这让一些初级程序员很容易就开发出强壮的应用。

在数据库等模块的加载上,LP采用LazyLoad方式,并用$GLOBALS实现全局单件,在方便和高效之间找到了一个平衡点。这也是LP框架名字中Lazy的来源。

LP在新浪大量使用已经将近3年,每天承载的请求达千万级别。由于LP易读易学,使用LP的开发者之间沟通非常容易,而新同事也可以很快融入进来。

LP3是LP最新的版本,最主要的调整是重新定义了Layout规则,以应对日益增多的Ajax,Mobile和Rest请求。同样是由于这个原因,LP3和之前的版本不兼容,我们建议大家在新项目中采用LP3。

继续阅读