yaf 做框架
$shm_key = ftok('/data/srv', 'c');
$shm_id = shmop_open($shm_key, 'a', 0644, 20971520);
$size = shmop_read($shm_id, 0, 10);
$content = shmop_read($shm_id, 10, (int)$size);
shmop_close($shm_id);
$result = parse_ini_string($content, false, INI_SCANNER_RAW);
$sSecretKey = $result['SESSIONKEY_PASSWORD'];
foreach ( $result as $key => $value) {
$value = AesDecrypt($value, $sSecretKey);
$yac->set($key, $value);
}
ftok() 函数生成一个唯一的共享内存标识符 $shm_key。该标识符基于指定的文件路径和项目字符进行计算,用于识别共享内存。shmop_open() 函数打开共享内存 $shm_id,以便进行读写操作。函数的参数包括共享内存标识符、打开模式、访问权限和共享内存的大小。在这里,使用了 'a' 模式表示如果共享内存不存在则创建,如果存在则打开。shmop_read() 函数从共享内存中读取数据。首先,从共享内存偏移量为 0 的位置读取 10 个字节的数据,这个数据表示后续内容的长度。然后,根据获取的长度,从共享内存偏移量为 10 的位置读取相应长度的数据。shmop_close() 函数关闭共享内存,释放资源。parse_ini_string() 函数将读取到的数据解析为数组 $result。该函数将解析 INI 格式的字符串,并返回一个关联数组。$result 数组中获取名为 SESSIONKEY_PASSWORD 的元素,并将其值保存在变量 $sSecretKey 中。