session|函数
关于session的几个补充函数
在PHP下,关于session的讨论很多,其实在PHP4中还有几个函数是我们平时没有注意到的。
下面我把它们介绍给大家吧。
其中的session_set_save_handler()可真是个好东西。
//********************
session_unset (PHP4 >= 4.0b4)
void session_unset(void);
这个函数可以把当然注册的所有的session变量置为空。注意它不是unregister,也不同于destroy。
下面这个例子,对此函数做了很好的说明。
session_register("a","b","c"); //auto-session-start
$a=1;
$b=2;
$c=3;
session_unregister("a"); //unregistrered $a
echo "A: $a - reg:".session_is_registered("a")."
"; // but the global $a remains
session_unset(); // unsets $b und $c
echo "B:$b - reg:".session_is_registered("b")."
"; // the registration remains !
echo "C:$c - reg:".session_is_registered("c")."
";
echo session_encode();
?>
输出:
A: 1 - reg:
B: - reg:1
C: - reg:1
!b|!c|
//********************************
session_get_cookie_params (PHP4 >= 4.0RC2)
array session_get_cookie_params (void);
返回一个数组,记录了当前session的cookie的一些信息。
有:
"lifetime" - cookie的生存期。
"path" - cookie的保存路径。
"domain" - cookie的域。
//*******************************
session_set_cookie_params (PHP4 >= 4.0b4)
void session_set_cookie_params (int lifetime [, string path ][, string domain]])
设置session的cookie的一些参参数,类似于php.ini中的设置,但本函数所作的设置,只对当前脚本文件有效。
//*******************************
下面要介绍的这个函数应是对大家都很有用的,你是不是对自定义一个不用cookie来保存的session有兴趣呢?这个函数就可以实现你这样的设想。
让我想想,如果不用cookie的好处是什么?至少一点,你不用担心客户端的的cookie的功能是否打开了,对吧。
session_set_save_handler (PHP4 >= 4.0b4)
void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)
这个函数可以定义用户级的session的保存函数(打开、关闭、写入等)。
比如,我们想把session保存在本地的一个数据库中时,本函数就很有用了。
!!注意:使用本函数前,先要配置php.ini文件,session.save_hadler=user,否则,session_set_save_handler()不会生效。
此外,根据我的测试,你如果想让这样的session跨页面使用,还要在每一个用到session的脚本文件中加入你自定的函数及session_set_save_handler,所以,最好的方法是做成一个单独的文件,在每一个要用到session的脚本中用include来包含进来。
下面这个例子提供了一个最基本的session保存法,类似于默认的files方法。
如果你想用数据库来实现,这也是很容易做到的。
Example 1. session_set_save_handler() example
function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;
$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}
function close() {
return(true);
}
function read ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return("");
}
}
function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}
}
function destroy ($id) {
global $sess_save_path, $sess_session_name;
$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Atom editor mac version download
The most popular open source editor

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

Zend Studio 13.0.1
Powerful PHP integrated development environment
