自定session保存路径 删除,注销,写入函数

  1. */
  2. $sessionpath=session_save_path(); //获取当前session的保存路径
  3. echo $sessionpath;
  4. if(strpos($sessionpath,";")!==false) //如果路径中存在分号
  5. {
  6. $sessionpath=substr($sessionpath,strpos($sessionpath,";")+1); //设置新的路径
  7. }
  8. function open($save_path,$session_name) //定义打开函数
  9. {
  10. global $sess_save_path,$sess_session_name; //预定义session路径及名称
  11. $sess_save_path=$save_path; //定义保存路径
  12. $sess_session_name=$session_name; //定义session名称
  13. return(true); //返回真值
  14. }
  15. function close() //定义关闭函数
  16. {
  17. return(true); //直接返回真值
  18. }
  19. function read($id) //定义读取函数
  20. {
  21. global $sess_save_path,$sess_session_name; //预定义保存路径与名称
  22. $sess_file="$sess_save_path/sess_$id"; //定义文件
  23. if($fp=@fopen($sess_file,"r")) //打开文件
  24. {
  25. $sess_data=fread($fp,filesize($sess_file)); //读取文件
  26. return($sess_data); //返回读取内容
  27. }
  28. else
  29. {
  30. return(""); //如果读取失败必须返回空值
  31. }
  32. }
  33. function write($id,$sess_data) //定义写入函数
  34. {
  35. global $sess_save_path,$sess_session_name; //预定义保存路径与名称
  36. $sess_file="$sess_save_path/sess_$id"; //定义文件
  37. if($fp=@fopen($sess_file,"w")) //打开文件
  38. {
  39. return(fwrite($fp,$sess_data)); //执行写操作
  40. }
  41. else
  42. {
  43. return(false); //如果打开失败返回错误
  44. }
  45. }
  46. function destroy($id) //定义注销函数
  47. {
  48. global $sess_save_path,$sess_session_name;
  49. $sess_file="$sess_save_path/sess_$id"; //指明文件
  50. return(@unlink($sess_file)); //删除session文件
  51. }
  52. function gc($maxlifetime) //定义过期函数
  53. {
  54. return true; //直接返回真值
  55. }
  56. session_set_save_handler("open","close","read","write","destroy","gc"); //设置函数
  57. session_start(); //初始化session
  58. //以下就可以继续正常地使用session
  59. //开源代码phpfensi.com