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