PHPのserialize/unserialize、その他のメモ

PHPのserialize/unserializeの注意。このAPIはstringだけを受けつける。つまりローカルファイルにデータを保管しておきたい場合、serializeは

$tmp=serialize($var);
if($f=fopen($filename, 'w')){
  fwrite($f, $tmp, strlen($tmp));
}

unserializeは

$var=unserialize(join('', file($filename)));

ということになる。このjoinを忘れたりするとダメ。file(“filename”)はarrayを返すのです。

あと、highlight_file()は1文字ずつ出力するらしく、(たぶん)mod_deflateと相性が悪いようだ。

ob_start();
highlight_file("filename");
ob_end_flush();

とすることが必要になる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です