PHP学习 session 重写的高级
2014-03-17 08:06
531 查看
一、介绍SESSIO信息写入到自己定义的位置
1. 解决跨机保存SESSION
在Linux下可以使用nfs或是samba, 共享文件夹的方式
使用数据库来实现
memcache来保存会话信息
session_set_save_handler()
2. 解决在线用户信息
二、介绍一下PHP配置文件中的常用选择(PHP.in) (写个例子演示, 以下参数,用默认的存储方未予)
session.name
session.use_trans_sid
启用SID的支持
session.save_path=
session.use_cookies =1
session.cookie_path = '/'
session.cookie_domain = ''
session.cookie_lifetime = 0
session.save_handler= memcache
session.gc_maxlifetime
garbage collection 垃圾回收
指定过了多少秒之后数据就会被视为“垃圾”,并被清楚
session.gc_probability=1
session.gc_divisor=100
这两个合起来就是启动gc进程管理概率的
初使化时(session_start())
session.gc_probability/session.gc_divisor
1/100
三、介绍一下session_set_save_handler()函数的使用
session_set_save_handler()
四、写入自己定义的文件,或远程服务器的硬盘中
五、将SESSION数据写入数据库中(使用PDO)
六、将SESSION信息写入到MemCache服务器中
==================================================
//需要写php文件中session hander= user
session save path =php
<?php
//在运行session_start(); //启动
function open($save_path, $session_name){
global $sess_save_path;
$sess_save_path=$save_path;
return true;
}
//session_write_close() session_destroy()
function close(){
return true;
}
//session_start(), $_SESSION, 读取session数据到$_SESSION中
function read($id){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
return (string)@file_get_contents($sess_file);
}
//结束时和session_write_close()强制提交SESSION数据 $_SESSION[]="aaa";
function write($id, $sess_data){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
if($fp=@fopen($sess_file, "w")){
$return=fwrite($fp, $sess_data);
fclose($fp);
return $return;
}else{
return false;
}
}
//session_destroy()
function destroy($id){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
return @unlink($sess_file);
}
//ession.gc_probability和session.gc_divisor值决定的,open(), read() session_start也会执行gc
function gc($maxlifetime){
global $sess_save_path;
foreach(glob($sess_save_path."/glf_*") as $filename){
if(filemtime($filename)+$maxlifetime < time() ){
@unlink($filename);
echo $filename;
}
}
return true;
}
session_set_save_handler("open", "close", "read", "write", "destroy","gc");
session_start();
1. 解决跨机保存SESSION
在Linux下可以使用nfs或是samba, 共享文件夹的方式
使用数据库来实现
memcache来保存会话信息
session_set_save_handler()
2. 解决在线用户信息
二、介绍一下PHP配置文件中的常用选择(PHP.in) (写个例子演示, 以下参数,用默认的存储方未予)
session.name
session.use_trans_sid
启用SID的支持
session.save_path=
session.use_cookies =1
session.cookie_path = '/'
session.cookie_domain = ''
session.cookie_lifetime = 0
session.save_handler= memcache
session.gc_maxlifetime
garbage collection 垃圾回收
指定过了多少秒之后数据就会被视为“垃圾”,并被清楚
session.gc_probability=1
session.gc_divisor=100
这两个合起来就是启动gc进程管理概率的
初使化时(session_start())
session.gc_probability/session.gc_divisor
1/100
三、介绍一下session_set_save_handler()函数的使用
session_set_save_handler()
四、写入自己定义的文件,或远程服务器的硬盘中
五、将SESSION数据写入数据库中(使用PDO)
六、将SESSION信息写入到MemCache服务器中
==================================================
//需要写php文件中session hander= user
session save path =php
<?php
//在运行session_start(); //启动
function open($save_path, $session_name){
global $sess_save_path;
$sess_save_path=$save_path;
return true;
}
//session_write_close() session_destroy()
function close(){
return true;
}
//session_start(), $_SESSION, 读取session数据到$_SESSION中
function read($id){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
return (string)@file_get_contents($sess_file);
}
//结束时和session_write_close()强制提交SESSION数据 $_SESSION[]="aaa";
function write($id, $sess_data){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
if($fp=@fopen($sess_file, "w")){
$return=fwrite($fp, $sess_data);
fclose($fp);
return $return;
}else{
return false;
}
}
//session_destroy()
function destroy($id){
global $sess_save_path;
$sess_file=$sess_save_path."/glf_".$id;
return @unlink($sess_file);
}
//ession.gc_probability和session.gc_divisor值决定的,open(), read() session_start也会执行gc
function gc($maxlifetime){
global $sess_save_path;
foreach(glob($sess_save_path."/glf_*") as $filename){
if(filemtime($filename)+$maxlifetime < time() ){
@unlink($filename);
echo $filename;
}
}
return true;
}
session_set_save_handler("open", "close", "read", "write", "destroy","gc");
session_start();
相关文章推荐
- php学习笔记(二十八)session的高级管理(基于数据库和memcache的)
- ZendFramework学习第三章(核心组件—会话处理之Zend_Session高级用法)
- php之session高级
- PHP高级应用学习笔记之——利用header()函数设置浏览器缓存
- PHP之session 验证学习
- PHP学习第五节----函数的高级运用
- PHP学习笔记:删除与销毁session
- php学习笔记--高级教程--读取文件、创建文件、写入文件
- php session学习笔记(实例代码)
- php学习笔记(三)面向对象高级实践
- PHP学习笔记_SESSION
- php设置session值和cookies的学习示例
- php学习之 基础四 cookie和session
- php 学习笔记 -- Cookie 和 Session(六)
- php学习笔记(二十五)认识session
- php session跨域问题研究学习
- php学习中的session和cookie的初步认识及其他
- PHP学习笔记【27】--服务端存储技术Session
- php设置session值和cookies的学习示例
- php 学习之 session