欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP会话跟踪末与文件处理系统一(43)

程序员文章站 2024-04-06 15:01:37
...
注销变量

1、unset ($_SESSION[‘xxx’])删除单个session变量,unset($_SESSION[‘xxx’]) 用来unregister一个已注册的session变量。其作用和session_unregister()相同。     session_unregister()在PHP5中不再使用。
  注:unset($_SESSION) 此函数千万不可使用,它会将全局变量$_SESSION销毁,而且还没有可行的办法将其恢复。用户也不再可以注册$_SESSION变量。
2、$_SESSION=array() 删除多个session变量
3、session_unset() 删除所有session变量

销毁会话

session_destroy()结束当前的会话,并清空会话中的所有资源。该函数不会unset(释放)和当前session相关的全局变量,也不会删除客户端的session cookie。
返回值:布尔值。
功能说明:这个函数结束当前的session,此函数
没有参数,且返回值均为true,

注:PHP默认的session是基于cookie的,如果要删除cookie的话,必须借助setcookie()函数。

删除session的案例

<?php
// 初始化session.session_start();
/* 删除所有的session变量..也可用
unset($_SESSION[‘xxx’])逐个删除。*/$_SESSION = array();//或session_unset();/*删除sessinid.由于session默认是基于cookie的,所
以使用setcookie删除包含session id的cookie.*/if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000,
'/');
}
// 最后彻底销毁session.session_destroy();
?>

持久化session

请求结束后所有注册的变量都会自动被序列化(为了方便保存到服务器端的会话文本文件中) ,读取时再进行还原。
??手动编码与解码:
??session_encode():序列号-编码
??session_decode():还原-解码
??警告: 有些类型的数据不能被序列化因此也就不能保存在会话中。包括resource变量或者有循环引用的对象(即某对象将一个指向自己的引用传递给另一个对象)。

配置会话控制

php.ini配置文件中有一组会话配置选项,可以对其进行设置。如下:
??session.auto_start= 0 ;在请求启动时初始化session
??session.cache_expire= 180 ; 设置缓存中的会话文档在n 分钟后过时
??session.cookie_lifetime= 0 ;设置按秒记的cookie的保存时间,相当于设置Session的过期时间,为0时表示直到浏览器被重启

也可以在php.ini里启动session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。
但启用该选项也有一些限制,如果确实启用了session.auto_start,则不能将对象放入会话中,因为类定义必须在启动会话之前加载以在会话中重建对象。

??session.cookie_path= / ; cookie的有效路径
??session.cookie_domain= ; cookie的有效域
??session.name= PHPSESSID;用在cookie里的session的名字
??session.save_handler= files ; 用于保存/取回数据的控制方式
??session.save_path= /tmp; 在save_handler设为文件时传给控制器的参数,这是数据文件将保存的路径.
??session.use_cookies= 1 ; 是否使用cookies

文件处理系统

文件类型

??在程序运行时,程序本身和数据一般都存在内存中,当程序运行结束后,存放在内存中的数据被释放。
??如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。
??文件一般指存储在外部介质上具有名字(文件名)的一组相关数据集合。用文件可长期保存数据,并实现数据共享。
??PHP是以UNIX的文件系统为模型的。因此在Windows系统中我们只能获得”file”、”dir”或者“unknown”三种文件类型。而在UNIX系统中,我们可以获得block、char、dir、fifo、file、link和unknown七种类型。
??可以使用函数filetype()获取文件的具体类型。
??语法:string filetype( string filename )

Liunx系统中7种文件类型说明

PHP会话跟踪末与文件处理系统一(43)

is_dir( ) --判断给定文件名是否是一个目录
语法结构:boolis_dir(名称)
返回类型:如果文件名存在并且是一个目录则返回true,否则返回false。
??is_executable( ) --判断给定文件名是否可执行
语法结构:boolis_executable(名称)
返回类型:如果文件存在且可执行则返回true ,否则返回false 。
??is_file( ) --判断给定文件名是否为一个正常的文件
语法结构:boolis_file(名称)
返回类型:如果文件存在且为正常的文件则返回true 。
??is_link( ) --判断给定文件名是否为一个符号连接
语法结构:boolis_link(名称)
返回类型:如果文件存在并且是一个符号连接则返回true。
??is_readable( ) --判断给定文件名是否可读
语法结构:boolis_readable(文件名称)
返回类型:如果文件存在并且可读则返回true。
??is_writable( ) --判断给定的文件名是否可写
语法结构:boolis_writable(文件名称)
返回类型:如果文件存在并且可写则返回true 。

文件的属性

PHP会话跟踪末与文件处理系统一(43)

以上就介绍了PHP会话跟踪末与文件处理系统一(43),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。