TOP ▲ itcore TOP プログラムパーツ

uCookieSetArray 配列データをクッキーへ保存する。個々の値は配列の要素としてセットする。 | itcore 2017年

PHP

PHP TOP

関数

<?php
// 配列データをクッキーへ保存する。個々の値は配列の要素としてセットする。
// HTML出力の前に実行(HTTPヘッダ情報として送信)する必要がある。
// uCookieSetArray($a_cookie);
function uCookieSetArray($a_cookie) {
  $value = serialize($a_cookie); // バイナリ文字列に変換
  $value = gzcompress($value); // 圧縮
  $value = base64_encode($value); // BASE64エンコード
  setcookie("a_cookie", $value, time()+60*60*24*30); // 30日間有効
}
// 配列データをクッキーから取得する。個々の値は配列の要素としてセットされている。
// $a_cookie = uCookieGetArray();
function uCookieGetArray() {
  if (!isset($_COOKIE["a_cookie"])) return array(); // クッキーが保存されていない場合。
  $value = $_COOKIE["a_cookie"]; // クッキーデータ
  $value = base64_decode( $value ); // BASE64デコード
  $value = gzuncompress( $value ); // 解凍
  $a_cookie = unserialize( $value ); // 配列に戻す。
  return $a_cookie;
}
?>

テスト

<?php include "uCookieSetArray.func"; ?>
<?php
$a_cookie = uCookieGetArray(); // クッキー情報取得
if (!isset($a_cookie["count"])) $a_cookie["count"] = 0;
$a_cookie["count"]++;
if (10 < $a_cookie["count"]) $a_cookie["count"] = 0;
uCookieSetArray($a_cookie); // クッキー情報セット
$count = $a_cookie["count"];
echo "count=$count<br>\n";
echo "ブラウザを更新してください。<br>\n";
?>

実行結果

count=1
ブラウザを更新してください。