더 모호한 것은 session_decode 및 session_encode입니다.
bool session_decode(string data);
session_decode()는 세션에 저장된
변수를 설정하여 데이터의 세션 데이터를 디코딩합니다
bool session_encode(void). ;
session_encode()는 현재
세션이 인코딩된 내용을 포함하는 문자열을 반환합니다.
php 매뉴얼에는 관련 예제가 없는 것 같습니다. 문자 그대로의 의미에서 디코드는 사용자 문자열
을 구문 분석하여 세션에 설정하는 것이고, 인코딩은 세션 데이터를 "패키지"하여 사용자
에게 반환하는 것입니다. 인코딩의 역할이 더 커질 수도 있습니다.
사용자가 세션에 데이터를 등록한 후에는 인코딩을 사용하여 데이터를 가져와야 하지만, 인코딩에서 반환된 내용은 여전히 처리해야 합니다. 예:
session_register( "val1");
$val1 = "abcde"
session_register("val2")
$val1 = 1234
session_register("val3"); >$val1 = 123.45
session_encode가 반환하는 내용은 다음과 같습니다.
val1:s:5:"abcde";val2:i:1234;val3:d:123.45
분명히 's'는 문자열입니다. , 'i' 및 'd'는 숫자이고 's' 유형의 변수에는 길이가 필요합니다.
세션 ID가 aaeebbcfd4455ec2c0d5cb590f8fab74인 경우 이 문자열은
실제로 /tmp/aaeebbcfd4455ec2c2c0d5cb590f8fab74 파일에 존재합니다.
이제 이 문자열을 직접 처리하고 원하는 세션 데이터를 추출해야 합니다. php4
가 등록된 변수를 구문 분석하는 편리한 인터페이스를 제공하지 않는다는 것이 이상합니다... 아니면 찾을 수 없는 것일 수도 있습니다.
먼저 직접 작성하세요...
session_data_init는 "패키지된" session_data를 모두 가져옵니다.
session_data_get은 변수 이름에 따라 데이터를 가져옵니다.
사용 방법:
$data = session_data_init( ); 🎜>$ result = session_data_get($data, "val1");
val1의 데이터를 꺼낼 수 있습니다.
/*
* 세션에 등록된 모든 날짜 가져오기
*/
function session_data_init( ) {
$sessionData = session_encode();
$sessionData를 반환합니다.
}
?>
/*
* 인코딩된 세션 데이터에서 하나의 변수 추출
*/
function session_data_get($data, $name) {
$matchStr = $name."|";
$matchStart = strpos($data, $matchStr);
if ($matchStart == 0) {
if (strlen($data) < strlen($matchStr)) return "";
$tmpStr = substr($data, 0, strlen($matchStr));
if (strcmp($tmpStr, $matchStr) != 0) return "";
}
$typeStart = $matchStart strlen($matchStr);
$dataType = substr($data, $typeStart, 1);
if (strcmp($dataType, "s") == 0) { /* 문자열 */
$lenStart = $typeStart 2;
$lenEnd = strpos($data, ":", $lenStart) - 1;
$lenLen = $lenEnd - $lenStart 1;
$strLen = substr($data, $lenStart, $lenLen);
$strStart = $lenEnd 3;
$strResult = substr($data, $strStart, $strLen);
$strResult를 반환합니다.
} else if (strcmp($dataType, "i") == 0 ||
strcmp($dataType, "d") == 0) { /* 숫자 */
$numStart = $ 유형시작 2;
$numEnd = strpos($data, ";", $numStart) - 1;
$numLen = numEnd - numStart 1;
$numResult = substr($data, $numStart, $numLen);
$numResult를 반환합니다.
} else {
return "";
}
}
?>
以上就介绍了java.lang.nullpointerException php4의 세션이 없습니다. 🎜>