联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

php cookie操作之队列操作类

点击数:11622015-07-16 15:23:15 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:文章从最简单的cookie操作(增加,删除,修改)到我们的cookie队列操作类的操作,有需要了解的同学可以参考本实例. 1、设置Cookie 1. PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟

文章从最简单的cookie操作(增加,删除,修改)到我们的cookie队列操作类的操作,有需要了解的同学可以参考本实例.

1、设置Cookie

1. PHP 的COOKIE

cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 

PHP 在http 协议的头信息里发送cookie,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对  header() 函数的限制类似.

1.1 设置cookie:

可以用 setcookie()或 setrawcookie()函数来设置 cookie,也可以通过向客户端直接发送http  头来设置.

1.1.1 使用 setcookie()函数设置cookie:

bool setcookie ( string name [, string value [,int expire [,string path [,string domain [,bool secure [,bool httponly]]]]]] ) 

name: cookie 变量名

value: cookie 变量的值

expire: 有效期结束的时间

path: 有效目录

domain: 有效域名,顶级域唯一

secure: 如果值为 1,则cookie 只能在https 连接上有效,如果为默认值 0,则http 和 https 都可以.

来看几个例子,简单的:SetCookie("MyCookie", "Value of MyCookie");

带失效时间的.代码如下:

SetCookie("WithExpire", "Expire in 1 hour", time()+3600);//3600秒=1小时

什么都有的,代码如下:

SetCookie("FullCookie", "Full cookie value", time()+3600, "/forum", ".phpuser.com", 1);

我们需要用到队列,代码如下:

  1. class QueueSvc 
  2. {/*{{{*/ 
  3.     private $length// 队列的长度 
  4.     private $server_arr
  5.      
  6.     public function __construct($length,$server_arr
  7.     { 
  8.         $this->length = $length
  9.         $this->server_arr = $server_arr
  10.     } 
  11.      
  12.     public function getServerArr() 
  13.     { 
  14.         return $this->server_arr; 
  15.     } 
  16.      
  17.     public function set($server_name
  18.     { 
  19.         self::push($server_name); 
  20.     } 
  21.      
  22.     private function push($server_name
  23.     { 
  24.         //有重复的记录,把重复的删掉 
  25.         if(self::isServerExist($server_name)){ 
  26.             self::removeRepeat($server_name); 
  27.         }else
  28.             if(self::isFull()){ 
  29.                 //如果已经满了,要把队列最后一个记录删掉 
  30.                 array_pop($this->server_arr); 
  31.             } 
  32.         } 
  33.         //如果队列为空,先置为空数组 
  34.         if(emptyempty($this->server_arr)) 
  35.             $this->server_arr = array(); 
  36.         //向队列头添加数据  
  37.         array_unshift($this->server_arr,$server_name);   
  38.     } 
  39.      
  40.     private function isFull() 
  41.     { 
  42.         if(is_array($this->server_arr) && (count($this->server_arr) >= $this->length)) 
  43.             return true; 
  44.         return false;  
  45.     } 
  46.      
  47.     private function isServerExist($server_name
  48.     { 
  49.         if(is_array($this->server_arr) && in_array($server_name,$this->server_arr)) 
  50.             return true; 
  51.         return false; 
  52.     } 
  53.      
  54.     private function removeRepeat($server_name
  55.     { 
  56.         if(is_array($this->server_arr) && in_array($server_name,$this->server_arr)) 
  57.         { 
  58.             foreach($this->server_arr as $key=>$value
  59.             { 
  60.                 if($server_name == $value
  61.                 { 
  62.                     $this->array_remove($this->server_arr,$key); 
  63.                 } 
  64.             }    
  65.         } 
  66.     } 
  67.      
  68.     private function array_remove(&$arr$offset) {      
  69.         array_splice ( $arr$offset, 1 );  
  70.     } 
  71. }/*}}}*/require_once('queue_svc.php'); 
  72. class CookieSvc 
  73. {/*{{{*/ 
  74.     const   COOKIE_KEY = "GAME_SERVER"
  75.      
  76.     const   SEPARATE   = "|"
  77.  
  78.     const   COOKIE_LENGTH = "2"
  79.      
  80.     public function getCookieArr() 
  81.     {/*{{{*/ 
  82.         $server_str =  $_COOKIE[self::COOKIE_KEY]; 
  83.         $server_str =  $_COOKIE['GAME_SERVER']; 
  84.         if($server_str == ''){ 
  85.             $result =  array(); 
  86.         }else
  87.             $result = explode(self::SEPARATE,
【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程