動的なサイトを制作する際、
キャッシュをうまく利用したいということは多いはず。
単純なテキストとかであれば大丈夫だと思いますが、
配列を配列のままキャッシュさせたい、、、
なんていう要望、ありませんか?
私も四苦八苦してしまいました。
iniファイルで管理して、parse_ini_file()で読み出せば簡単だ
と思ったのですが、それだと多次元配列の扱いが難しい。。。
で、色々探してみたら、
serialize() という関数を発見!!
これは、配列を配列として管理可能な文字列に
変換するというものです。
どんな文字列になるかは使ってみてください!
で、まあお決まりのように、これを逆変換する関数も用意されているわけで。
それがunserialize() 。
簡単なサンプルコード書いてみます。適当に。
多次元配列だろうが連想配列だろうが、
キレイに処理してくれます。
DB使えない環境とかでも便利です。
キャッシュをうまく利用したいということは多いはず。
単純なテキストとかであれば大丈夫だと思いますが、
配列を配列のままキャッシュさせたい、、、
なんていう要望、ありませんか?
私も四苦八苦してしまいました。
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使えない環境とかでも便利です。