関数・クラス解説

session_gc

version:PHP 7 >= 7.1.0 (公式)

セッションデータのガベージコレクションを実行する

公式リファレンス

書式

session_gc ( ) : int

説明

session_gc() は、セッションデータの GC (ガベージコレクション) を実行するために使用されます。PHPは、デフォルトで確率ベースのセッション GC を行います。

確率ベースの GC は多少は機能しますが、いくつかの問題があります。 1) トラフィックが少ないサイトのセッションデータは、優先期間内に削除されないことがあります。 2) トラフィックの多いサイトでは、GC が頻繁になる可能性があります。 3) ユーザーの要求の際に GC が実行され、ユーザーは GC 遅延を感じます。

そのため、例えば UNIX 系のシステムでは「cron」を使用して、 本稼動システムに対して定期的に GC を実行することをお勧めします。 session.gc_probability を 0 に設定して、 確率ベースのGCを無効にしてください。

返値

session_gc() は、 成功時には削除されたセッションデータの数、 失敗時には FALSE を返します。 古いセーブハンドラは、削除されたセッションデータの数を返さず、成功/失敗フラグのみを返します。 この場合、実際に削除されたデータにかかわらず、削除されたセッションデータの数は 1 になります。

サンプル

例1 cron のようなタスクマネージャでの session_gc() の例

// 注 : このスクリプトは、Web サーバープロセスと同じユーザーで実行される必要があります。 // セッションデータストレージアクセスを初期化するには、アクティブセッションが必要です。 session_start(); // 直ちに GC を実行します session_gc(); // session_gc() によって作成されたセッション ID をクリーンアップします session_destroy();

例2 ユーザーがアクセス可能なスクリプトでの session_gc() の例

// 注 : session_gc() は、タスクマネージャスクリプトで使用することをお勧めしますが、次のように使用できます。 // 最後の GC 時間チェックに使用 $gc_time = '/tmp/php_session_last_gc'; $gc_period = 1800; session_start(); // GC 期限が経過したときにのみ GC を実行します。  // つまり、リクエストのたびに session_gc() をコールすることはリソースの無駄です。 if (file_exists($gc_time)) {     if (filemtime($gc_time) < time() - $gc_period) {         session_gc();         touch($gc_time);     } } else {     touch($gc_time); }

参考

  • session_start() - 新しいセッションを開始、あるいは既存のセッションを再開する
  • session_destroy() - セッションに登録されたデータを全て破棄する
  • session.gc_probability
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール