php cookie字典
在asp中,我们可我这样写入cookie,如下所示:
<% 
  Response.Cookies("user")("name")="John" 
  Response.Cookies("user")("id")="6"
  Response.Cookies("user")("cip")="192.168.1.66"
%>
这种带有键的cookie,称之为cookie字典,在asp.net也有同样的方法来实现。但在php中,要实现这个就没有那么容易了。为什么要用cookei字典,因为在用户用的浏览器,对于cookie的数目是有限制的,这样的好处是可以减少客户浏览器使用cookie的数量。
php没有直接的方法实现cookie字典,在php中也没有cookie字典这个概念。但有没有办法实现同样的功能呢,答案是有,不过要迂回一下。下面的代码实现了这样的功能。
<?php
    $user=array("name"=>"John",
   "id"=>6,
   "cip" =>"192.168.1.66"
   );
    setrawcookie("user",http_build_query($user));
?>
上面利用http_build_query函数把数组转化为字符串保存到cookie中,读的话,再把各个键值从字符串中拆出来,如下所示:
<?php
  
  function getCookie($cookieStr)
  {
    $temCookieStr="";
    foreach ( $_COOKIE as $site => $link )
    {
      if($site==$cookieStr)
      {
    $temCookieStr=$link;
      }
 
    }
        
    return $temCookieStr;
  }
    
    
    
  function getSubCookie($cookieStr,$subCookieStr)
  {
    if(getCookie($cookieStr)!="")
    {
      $subarr=explode("&",getCookie($cookieStr));
    
      for($i=0;$i<count($subarr);$i++)
      {
                  
        $strTemArr=explode("=",$subarr[$i]);
    if($strTemArr[0]==$subCookieStr)
        {
      return $strTemArr[1];
    }
      }
    }
    return "";
  }
  $name=getSubCookie("user","name"); //读name键
  $id=getSubCookie("user","id"); //读id键
  $cip=getSubCookie("user","cip"); //读cip键
?>
近期文章
- 织梦5.7{dede:php}标签不起作用的解决办法
 - php版本non-thread-safe和thread-safe的区别
 - 什么是fatal flex scanner internal error--end of buffer missed
 - php文件命名建议用小写
 - php cookie字典
 - seft和static在php中有什么不同
 - 用php快速获取图片大小
 - 用php的json_decode()检测json数据是否合法
 - php三个等号
 - unset和=null有什么不同
 - php如何捕获一个警告信息
 - 如何获得php数组中最后一个元素的键名?
 - 在PHP中,你如何改变数组中某一元素的键名?
 - php多维数组转xml
 - php如何转化数组为SimpleXML对象
 - php如何把数组定义为常量
 - php根据数组中的值删除数组中的元素
 - 计算两个日期相差多少天
 - 如何捕获var_dump的输出结果保存到一个字符串中?
 - 用php获取完整的URL