2014-03-24 1 views
0

이미 찾았습니다 Own SuperGlobal Variable in PHP? 여기에 다른 사용자/세션에 대해 동일한 "서버 변수"를 어떻게 든 정의하거나 사용할 방법이 없다고 말합니다. 그러나 몇 년이 지나서 뭔가 바뀌었을 수 있습니까? 그리고 이제는 그렇게 될 수 있습니까?PHP : 자신의 서버 변수를 정의하십시오.

기본적으로 나는 사용자 이벤트에 의해 트리거 된 PHP 스크립트를 실행하고 싶지만 예를 들어 더 자주 실행하고 싶지 않습니다. 30 분에 한 번. 그래서 내 frst 생각 "(모든 세션/클라이언트에 대한 visibles) 서버 쪽 var 유지"및 사용자가 이벤트를 트리거하면 (예 : 일부 페이지를 엽니 다) 스크립트가 마지막 30 분 실행 한 다음 페이지를 엽니 다. 예를 들어 페이지를 열기 전에 구식/통과 된 것들을 제거하십시오.

예 필자는 mySQL 등의 해결 방법을 사용할 수 있음을 알고 있지만, PHP가 필자가 필요로하는 것이면 워크 랩을해야하는 이유는 무엇입니까?

미리 감사드립니다.

+0

이 메타 게시물을 참조하십시오. [답변이없는 예전의 질문에 대해서는 어떻게 알 수 있습니까?] (http://meta.stackexchange.com/questions/7046/how-do-i-get-attention-for-old - 답이없는 질문들). 같은 질문을 다시 게시하는 것만으로는 문제가 해결되지 않습니다. – Lix

+0

그 외에도, 특별한 사용 예를 들어 설명하면 나는 단지'filemtime'과'touch'와 결합 된 간단한 _file_을 사용했을 것입니다 ... – CBroe

답변

1

일반 PHP 변수은 현재 스크립트 실행 이후로 유지 될 수 없습니다. 스크립트가 끝나면 모든 변수가 사라집니다. 그것이 PHP의 기본적인 특성입니다. 실제로 그것은 모든 컴퓨터 프로그램의 기본 특성입니다. PHP가 일반적으로 항상 매우 빨리 종결된다는 것입니다.

  • 데이터베이스
  • 파일
  • shared memory (이 언제든지 제거 할 수 있지만)
  • : 하나의 스크립트 호출을 넘어 데이터를 유지하기 위해, 당신은 어디에 데이터를 저장하는 몇 가지 옵션이 있습니다
  • memcached (기본적으로 메모리 내장 데이터베이스 서버)과 같은 메모리 캐시
  • 영구 PHP 스크립트를 실행하고 소켓 (기본적으로 memcache)을 통해 통신합니다.
  • 스크립트를 종료하지 않고 데몬으로 작성하십시오.

최근에이 내용이 변경된 것은 없습니다.

+0

deceze, 컴퓨터 프로그램에 대한 흥미로운 정보를 가져 주셔서 감사합니다. PHP 서버가 "항상"실행되고 있기 때문에 내가 찾고있는 것을 기대하고 있습니다. (IMHO) – user2997497

+0

아니요, "PHP 서버"가 실행되고 있지 않습니다. * Apache * (또는 nginx 또는 다른 웹 서버)가 실행 중이며, 각 요청에 대해 독립적 인 PHP 인스턴스가 실행됩니다. PHP 스크립트 자체가 시작되어 끊임없이 끊어집니다. 영속 스크립트를 작성하려면 명시 적으로 영속적 인 스크립트를 만들어야합니다 (일반적으로 무한 루프'while (true) {...}'). 이것은 다른 언어의 다른 프로그램과 전혀 다른 것은 아닙니다. – deceze

+0

나는 그것에 동의해야만합니다 :) – user2997497

관련 문제