PHP에서 함수를 모든 사용자가 사용하는 횟수를 계산하는 함수를 만들려고합니다. 이 기능이 사용 된 경우PHP 웹 환경에서 글로벌 타이머 설정
,의는, 30 번 가정 해 봅시다, 다음 몇 분 동안 액세스를 차단해야하고 0
에 카운터를 재설정이 PHP에서 할 수 있습니까?
PHP에서 함수를 모든 사용자가 사용하는 횟수를 계산하는 함수를 만들려고합니다. 이 기능이 사용 된 경우PHP 웹 환경에서 글로벌 타이머 설정
,의는, 30 번 가정 해 봅시다, 다음 몇 분 동안 액세스를 차단해야하고 0
에 카운터를 재설정이 PHP에서 할 수 있습니까?
모든 사용법이 단일 프로세스 내에서 발생하는 경우 이는 아무런 문제가되지 않습니다. 방금 전역 변수 또는 정적 카운터 변수를 사용하여 증가시킵니다. 프로세스가 실행되는 동안 해당 값에 액세스 할 수 있습니다.
그러나 나는 웹 환경과 PHP 서버가 실행하는 스크립트의 일부인 PHP 함수에 대해 이야기하고 있다고 가정합니다. 죄송합니다.하지만 언급하지 않으셔도됩니다 ...
이 경우 더 이상 하나의 프로세스가 아니기 때문에 상황이 더 복잡해집니다. 일종의 영구 저장 장치가 필요합니다. 일반적인 시나리오에서는 데이터베이스, 파일 또는 공유 메모리를 사용합니다. 이를 통해 서로 다른 프로세스가 공유 카운터 값에 액세스 할 수 있습니다.
어쨌든 데이터베이스를 사용한다면 가장 쉬운 방법은 데이터베이스 테이블의 값을 증가시키는 것입니다. 동일한 단계에서 타임 스탬프를 저장할 수도 있습니다. 이후 (증가 된) 값은 다음 호출 함수에서 쉽게 읽을 수 있습니다. 데이터베이스가없는 경우 텍스트/XML 파일을 사용할 수도 있습니다.
이것은 해결책 일 수 있지만 모든 요청시 파일에서 데이터를 가져 오거나 쿼리하지 않는 것이 효율적이지 않습니다. – Vektor88
나는 아직도 그것을 만드는 방법을 생각하고있어, 카운터 부분을하기가 어렵지 않아야한다. 어쩌면 내가 파일에 요청 번호를 저장하고 매번 가져올 수 있지만,이 방법은 피하고 싶다. . 무엇보다 가장 걱정스러운 부분은'sleep()'함수를 사용하는 타이머 부분 일지 모르지만, 이것이 모든 사람이 아니라 단 한 명의 사용자에게만 영향을 줄 수 있습니다. – Vektor88
카운터 값 옆에 타임 스탬프를 저장하십시오. 이번에는 모든 프로세스가 동일한 시간 제한 값을 고려할 수 있습니다. – arkascha