一、例子
<?php
// 1. 检查当前存储路径(无参数调用)
$original_path = session_save_path();
echo "默认路径: " . $original_path . PHP_EOL;
// 2. 设置新路径(必须为绝对路径)
$custom_path = __DIR__ . '/session_data';
if (!is_dir($custom_path)) {
mkdir($custom_path, 0700); // 创建目录并设置权限
}
session_save_path($custom_path);
// 3. 验证路径修改结果
echo "新路径: " . session_save_path() . PHP_EOL;
// 4. 使用会话(必须在设置路径后启动)
session_start();
$_SESSION['timestamp'] = time();
// 5. 查看实际存储文件
echo "会话文件: " . session_save_path() . '/sess_' . session_id();二、讲解
以下是逐行逐词分析讲解:
<?phpPHP代码开始标记
// 1. 检查当前存储路径(无参数调用)注释说明接下来的操作
$original_path = session_save_path();session_save_path():无参数调用获取当前会话存储路径$original_path:存储返回的路径字符串echo "默认路径: " . $original_path . PHP_EOL;输出当前路径
.:字符串连接符PHP_EOL:跨平台换行符常量// 2. 设置新路径(必须为绝对路径)注释说明路径设置操作
$custom_path = __DIR__ . '/session_data';__DIR__:当前脚本所在目录的绝对路径拼接自定义目录名'session_data'
if (!is_dir($custom_path)) {is_dir():检查目录是否存在!:逻辑非运算符mkdir($custom_path, 0700);mkdir():创建目录0700:权限设置(所有者有rwx权限)session_save_path($custom_path);设置新的会话存储路径
// 3. 验证路径修改结果注释说明验证操作
echo "新路径: " . session_save_path() . PHP_EOL;再次调用函数输出当前路径验证修改
// 4. 使用会话(必须在设置路径后启动)注释强调执行顺序
session_start();启动会话(必须在路径设置后调用)
$_SESSION['timestamp'] = time();$_SESSION:超全局数组time():当前Unix时间戳// 5. 查看实际存储文件注释说明文件查看操作
echo "会话文件: " . session_save_path() . '/sess_' . session_id();拼接完整会话文件路径
session_id():获取当前会话ID格式:
路径/sess_会话ID
关键执行流程:
获取原始路径 → 2. 创建新目录 → 3. 设置新路径 → 4. 启动会话 → 5. 存储数据 → 6. 显示文件位置
安全注意事项:
目录权限0700防止其他用户访问
绝对路径避免相对路径问题
操作顺序确保配置生效