在PHP中使用serialize()序列化数据是非常便捷的。serialize()返回一个字符串,此字符串包含了表示数据的字节流。使用serialize()产生的这个字符串可以存储于任何地方,同时不会丢失其数据类型和结构,这有利于存储或传递PHP的值。
成都创新互联公司专注于歙县企业网站建设,成都响应式网站建设公司,商城网站制作。歙县网站建设公司,为歙县等地区提供建站服务。全流程按需规划网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
serialize()可以处理除resource之外的任何类型,甚至可以处理那些包含了指向其自身引用的数组。数组/对象中的引用也将被存储,并且自PHP4版本以后可以同时存储对象的属性和方法(PHP3只能存储对象的属性)。
但是在使用serialize()的时候一定要注意对其内容先进行addslashes()处理,否则序列化的数据中如果有特殊字符就会导致字符串无法使用unserialize()进行反序列化。
客户端数据存储机制cookie
在实际的Web应用中经常需要在客户端存储一些客户信息 一方面是为了改善用户体验(如存储访问密码 历史表单信息) 另一方面有效地减轻了服务器数据读取压力 访问者在第一次访问页面时设置cookie变量是存储在客户端计算机中 当下次浏览器请求某个页面时 就可以读取cookie中存储的值 从而实现客户端数据存取
下面将通过一个例子展示一个客户端数据存储的实际应用 执行流程如下
( )创建一个存储访问者名字的cookie;
( )当访问者首次访问网站时 访问者会被要求填写姓名信息 该姓名信息会存储于cookie中
( )当访问者再次访问网站时浏览器会显示欢迎词信息
在JavaScript创建cookie
创建一个可在cookie变量中存储访问者姓名的函数 代码如下
function setCookie(c_name value expiredays)
{
var exdate=new Date() //实例化日期变量
exdate setDate(exdate getDate()+expiredays) //设置日期变量
document cookie=c_name+ = +escape(value)+
((expiredays==null) ? : ;expires= +exdate toGMTString())
}
【代码解读】
setCookie()函数的功能是设置cookie的名称 值及失效时间 首先将获取当前的日期转换为有效的日期 然后设置cookie名称 值及失效时间 并将该值存入document cookie对象
从JavaScript取回cookie的值
从JavaScript取回cookie的值 创建读取客户端cookie值的函数 同时判断当前cookie的状态 代码如下
function getCookie(c_name)
{
if (document cookie length ) //判断当前cookie是否为空
{
c_start=document cookie indexOf(c_name + = )
if (c_start!= )
{
c_startc_start=c_start + c_name length+
c_end=document cookie indexOf( ; c_start)
if (c_end== ) c_end=document cookie length
return unescape(document cookie substring(c_start c_end))
//返回客户端cookie的值
}
}
return
}
【代码解读】
getCookie()函数首先会判断document cookie对象中是否存有cookie 如果document cookie对象存有某些cookie值 那么会继续检查指定的cookie是否已储存 如果满足判断条件就返回cookie存储值 否则返回空字符串
JavaScript流程控制
当完成了cookie的创建和读取之后 需要创建一个流程控制函数 这个函数的作用是 如果cookie已设置 则显示欢迎词 否则显示提示框要求用户输入名字
function checkCookie() {
username=getCookie( username ) //获得cookie中的用户名变量
if (username != null username != ) {
alert( Wele again +username+ ! ) //弹出欢迎信息
} else {
username=prompt( Please enter your name: )
if (username != null username != ) {
setCookie( username username ) //设置cookie
}
}
}
客户端数据存储示例的完整代码如下
lishixinzhi/Article/program/PHP/201311/21526
可以的,php数组不需要声明类型,它会根据你所存储的第一个数据判断数据类型.