1
我正在查看Zend_Session的代碼,試圖更好地理解如何實現會話開始。在代碼中,他們做了一些我不太明白的事情。PHP Zend會話代碼逆向工程解釋
$hashBitsPerChar = ini_get('session.hash_bits_per_character');
if (!$hashBitsPerChar) {
$hashBitsPerChar = 5;
}
switch($hashBitsPerChar) {
case 4: $pattern = '^[0-9a-f]*$'; break;
case 5: $pattern = '^[0-9a-v]*$'; break;
case 6: $pattern = '^[0-9a-zA-Z-,]*$'; break;
}
if(!preg_match('#'.$pattern.'#', $id)){
session_id(md5(session_id()));
$regenerateId = true;
}
什麼我遇到困難的理解是爲什麼他們有具有不(^)的模式,然後,如果它不匹配,他們開始會話之前創建一個臨時會話ID。這對我來說沒有任何意義 - 爲什麼他們對沒有0-9a-zA-Z-,
?我只是不太明白這裏發生了什麼,想要了解。
謝謝