이 글은 주로 PHP에서 세션 저장 메커니즘을 다시 작성하는 방법을 소개합니다. 특정 참조 값이 있습니다. 이제는 필요한 친구들이 참조할 수 있습니다.
세션 데이터 영역
파일 양식은 서버 운영 체제와 함께 임시 디렉터리에 저장됩니다!
세션 데이터 영역이 너무 많으면 파일 형태로 저장하면 작업 속도가 느려집니다. 디스크 읽기 및 쓰기(IO, 입출력) 오버헤드가 매우 높습니다.
실제 프로젝트에서는 세션 데이터를 더 빠르게 저장하기 위해 다른 방법을 사용할 것입니다. 일반적인 방법: 데이터베이스, 메모리.
설명하기 위해 데이터베이스 저장소를 예로 들어보겠습니다. 세션 데이터는 데이터베이스에 저장됩니다!
세션 데이터 영역과 직접 관련된 작업을 다시 작성하세요.
가장 기본적인 작업은 읽기 및 쓰기 2개뿐입니다!
1: 읽기와 쓰기를 완료할 수 있는 함수 2개를 정의합니다.
둘: 읽기 및 쓰기가 필요할 때 사용자 정의 읽기 및 쓰기 기능을 사용하도록 세션 메커니즘에 알립니다.
관련 주제 추천: php 세션(그림, 텍스트, 동영상, 사례 포함)
세션 메커니즘을 알리고, 가 읽고 써야 할 때 는 사용자 정의 읽기 및 쓰기 함수를 사용하여 완료합니다.
Session_set_save_handler( 开始函数,结束函数,读函数,写函数,删除函数,GC函数 );
는 사용자 정의 함수를 세션 저장소에 설정하는 데 사용됩니다. 관련 기능.
위 구문은 위의 6개 함수에 대한 호출이 아니라 단지 설정 알림일 뿐입니다. 이 6개 함수는 세션 메커니즘이 특정 시점까지 실행될 때만 호출됩니다! 예를 들어 세션을 열 때만 sessRead()를 호출하면 됩니다
하여 세션 메커니즘을 엽니다
작업 $_SESSION
$_SESSION
该session中,每条记录,就是一个session数据区,相当于原来的一个session文件。
表结构:
谁调用,谁传参!
在PHP的session机制调用该函数时,会将当前的session-ID作为参数传递到函数中:
因此,需要定一个形参,接受传递的session-ID 参数:
需要返回,读取到的session数据字符串。就是sess_content字段的内容。如果没有读到,则返回空字符串即可,表示没有session数据。
当PHPsession机制调用该函数执行写操作时,会将 当前session-ID和 需要写入的内容(序列化好的)传递到函数!
需要2个形参来接收:
测试:
销毁session时。
执行了PHP函数:
Session_destroy();
이 세션에서 각 레코드는 세션 데이터 영역입니다. 원본 세션 파일과 동일합니다.
테이블 구조:
읽기 작업:
sessRead()
호출하는 사람이 매개변수를 전달합니다!
PHP의 세션 메커니즘이 이 함수를 호출하면 현재 세션 ID가 매개변수로 함수에 전달됩니다. 따라서 전달된 세션 ID 매개변수를 허용하려면 형식 매개변수를 지정해야 합니다. 반환해야 합니다. , read 획득한 세션 데이터 문자열입니다. sess_content 필드의 내용입니다. 읽히지 않으면 빈 문자열을 반환하여 세션 데이터가 없음을 나타냅니다. 🎜쓰기 작업: 🎜🎜sessWrite() 🎜🎜🎜PHP 세션 메커니즘이 쓰기 작업을 수행하기 위해 이 함수를 호출하면 현재 세션 ID와 기록(직렬화)될 콘텐츠가 함수에 전달됩니다! 🎜🎜수신하려면 2개의 공식 매개변수가 필요합니다: 🎜🎜🎜 🎜 테스트: 🎜🎜 🎜🎜🎜🎜🎜삭제 작업: 🎜🎜sessDelete()🎜🎜🎜 세션을 삭제할 때. 🎜🎜PHP 함수 실행: 🎜🎜Session_destroy();
🎜🎜는 세션을 파괴하고 해당 세션 데이터 영역을 삭제하는 동시에 세션 메커니즘을 닫을 수 있습니다! 🎜🎜 🎜🎜🎜세션 데이터 영역을 삭제해야 하기 때문에 삭제 방법을 추가해야 합니다. 🎜🎜 PHP의 세션 메커니즘은 sessDelete를 호출할 때 현재 세션 ID를 매개변수로 전달합니다. 🎜🎜필요 수신할 공식 매개변수 정의: 🎜🎜🎜🎜🎜🎜가비지 수집 작업: sessGC()🎜🎜🎜 가비지: 서버의 오래된 세션 데이터 영역. , 🎜🎜쓰레기를 판별하는 방법은 무엇입니까? 🎜🎜 세션 데이터 영역이 일정 기간(마지막 쓰기 작업) 이상 사용되지 않은 경우 가비지 데이터로 간주됩니다. 🎜🎜이번의 임계점: 기본 1440s. 구성 가능: 🎜
마지막 쓰기 시간으로 가비지 여부를 판단할 수 있습니다
마지막 쓰기 시간을 기록하려면 필드를 추가해야 합니다.
작성할 때 다음 필드를 업데이트하세요.
sessWrite( ; 시간-1440
삭제하는 방법은 무엇인가요?
session_start() 프로세스 중에 세션 메커니즘이 켜지면 가비지 수집 작업을 수행할 기회가 있습니다. 실행되면 만료된 모든 가비지 데이터 영역이 삭제됩니다.기본 확률은 1/1000입니다.
확률을 설정할 수 있습니다:
가능성:
Adjust 확률 테스트: 스크립트 주기 동안 조정하고 ini_set() 함수를 사용하여 완료하는 것이 좋습니다. 세션 메커니즘을 열기 전에 다음을 수행합니다.
Implementing sessGC()
PHP의 세션 메커니즘은 최대 유효 기간을 매개변수로 전달합니다. !작업 시작
sessBegin
()
# 🎜🎜#:초기화 작업문법 세부정보
세션 메커니즘을 열 때 첫 번째 설정Session_set_save_handler()는 session_start() 전에 호출됩니다. 세션을 자동으로 열지 마세요! php.ini: session.auto_start=0 🎜#PHP에서 사용하는 저장 메커니즘:
관련 권장 사항:
폴더를 탐색하여 PHP를 통해 이미지 디렉터리 이름과 파일 이름을 가져오는 방법위 내용은 PHP에서 세션 저장 메커니즘을 다시 작성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!