動的なサイトを制作する際、
キャッシュをうまく利用したいということは多いはず。

単純なテキストとかであれば大丈夫だと思いますが、
配列を配列のままキャッシュさせたい、、、

なんていう要望、ありませんか?

私も四苦八苦してしまいました。

iniファイルで管理して、parse_ini_file()で読み出せば簡単だ
と思ったのですが、それだと多次元配列の扱いが難しい。。。

で、色々探してみたら、
serialize() という関数を発見!!

これは、配列を配列として管理可能な文字列に
変換するというものです。

どんな文字列になるかは使ってみてください!

で、まあお決まりのように、これを逆変換する関数も用意されているわけで。
それがunserialize()

簡単なサンプルコード書いてみます。適当に。


<?php

// 配列(内容へのツッコミは受け付けません)
$array = (
'name' => 'semodoki',
'fruit' => array(
'grape' => 'suki',
'orange' => 'suki',
'grapefruit' => 'kirai'
)
);

// シリアライズ
$serialized = serialize($array);

// シリアライズしたテキストを覗いてみよう
echo $serialized . "\n";
echo "<hr />\n";

// 保存
$fp = fopen('fruit.txt', 'w');
flock($fp, LOCK_EX);
fputs($fp,$serialized);
fclose($fp);

// 読み込み
$fileStr = file_get_contents("fruit.txt");

// 逆変換(配列に格納されますよー)
$unserialized = unserialize($fileStr);

// 表示してみよう
print_r($unserialized);

exit;

?>

こんな感じ。

多次元配列だろうが連想配列だろうが、
キレイに処理してくれます。

DB使えない環境とかでも便利です。