TP的COOKIE类是被封装好的,里面包含了一些常见的操作,set,get,clear等等,其实TP的cookie类与其他的COOKIE有着明显的不同,那就是TP的COOKIE ID是唯一的(不好意思,在我写完这段的时候,为了防止写错,我又重新打开了cookie.class.php,却突然发现,现在的cookie功能与以前的不一样了。)
以前的set函数是类似于这样:
PHP代码
- $_COOKIE[C('COOKIE_ID')][C('COOKIE_PREFIX').$name] = $value ;
如今的又恢复成:
PHP代码
- $_COOKIE[C('COOKIE_PREFIX').$name] = $value;
既然如此,我还是按最新的稍作讲解吧。。。
Cookie类,固名思意,就是把对COOKIE的操作进行了封装,通过定义一个COOKIE名的前缀,以防与其他COOKIE产生冲突,然后加上COOKIE变量的名称,就可以进行赋值、取值等。
Cookie类所有的操作都采用了静态方法,即在实际应用中,只要加载了Cookie类,就可以随时使用了:
PHP代码
- <?
-
- Cookie::get('test');
-
-
- Cookie::set('test','123456');
-
-
对于这些封装,可以方便使用,同样需要注意的是,在Cookie操作时,请不要输出header,否则可能会出现header already send的warning,同时无法写cookie,这点请需要注意。
另外一个需要注意的是,cookie在不同的浏览器下面有着不同的限制,最常见的就是cookie的长度,请尽量不要超过4K的字节。
参考资料:
FF浏览器
- * 一个 Cookie 档案最多只能包含 300 个 Cookies。(这只适用于 Netscape,因为它把所有的 Cookie 都放在一个档案。)
- * 每一个 Cookie 的大小不得超过 4KB。
- * 每一个 URL 路径,最多只能设定 20 个 Cookie。