session_gc
  (PHP 7 >= 7.1.0, PHP 8)
session_gc — Führt die Garbage Collection der Session-Daten durch
  
 
  Beschreibung
  
  
  
   Die wahrscheinlichkeitsbasierte GC funktioniert einigermaßen, bringt aber
   einige Probleme mit sich. 1) Die Session-Daten von Websites mit geringem
   Datenverkehr werden möglicherweise nicht innerhalb der gewünschten Frist
   gelöscht. 2) Bei Websites mit hohem Datenverkehr kann die GC zu häufig
   erfolgen. 3) Die GC wird durchgeführt, während eine Anfrage des Benutzers
   bearbeitet wird, was zu einer zusätzlichen Verzögerung für den Benutzer
   führt.
  
  
   Daher wird empfohlen, die GC auf Produktivsystemen regelmäßig auszuführen,
   bei UNIX-ähnlichen Systemen z. B. mit "cron". Es ist sicherzustellen, dass
   die wahrscheinlichkeitsbasierte GC deaktiviert ist, indem
   session.gc_probability
   auf 0 gesetzt wird.
  
  
 
  Parameter-Liste
  Diese Funktion besitzt keine Parameter.
  
 
  Rückgabewerte
  
   session_gc() gibt bei Erfolg die Anzahl der gelöschten
   Session-Daten zurück. Bei einem Fehler wird false zurückgegeben.
  
  
   Alte Speicherverfahren geben nicht die Anzahl der gelöschten Session-Daten
   zurück, sondern nur das Flag für Erfolg/Fehlschlag. In diesem Fall ist die
   Anzahl der gelöschten Session-Daten immer 1, unabhängig von der
   tatsächlichen Anzahl der gelöschten Daten.
  
  
 
  Beispiele
  
   
    Beispiel #1 session_gc()-Beispiel für Taskmanager wie cron
    
<?php
// Hinweis: Dieses Skript muss vom selben Benutzer ausgeführt werden
// wie der Prozess des Webservers.
// Um den Zugriff auf den Session-Datenspeicher zu initialisieren,
// ist eine aktive Session erforderlich.
session_start();
// Führt GC sofort aus
session_gc();
// Löschen der von session_gc() erzeugten Session-ID
session_destroy();
?>
     
    
   
    Beispiel #2 session_gc()-Beispiel für ein Skript, auf das ein Benutzer Zugriff hat
    
<?php
// Hinweis: Es wird empfohlen, dass session_gc() von einem Taskmanager-Skript
// verwendet wird, aber es kann auch wie folgt verwendet werden.
// Wird verwendet, um den letzten GC-Zeitpunkt zu überprüfen
$gc_time = '/tmp/php_session_last_gc';
$gc_period = 1800;
session_start();
// GC nur dann ausführen, wenn die GC-Periode verstrichen ist,
// d. h. session_gc() bei jeder Anfrage aufzurufen, ist eine Verschwendung
// von Ressourcen.
if (file_exists($gc_time)) {
    if (filemtime($gc_time) < time() - $gc_period) {
        session_gc();
        touch($gc_time);
    }
} else {
    touch($gc_time);
}
?>