php serializeの構造
serializeされている値の一部を変更したかった話
すでにDBにserializeされた状態で格納されたデータの一部を変更したかった。
一部を抜き出すと、
a:2:{s:1:"9";
を
a:2:{s:1:"10";
に変更したい。
配列の中に9って文字列があって、10に変更したかったんです。
何気なしに10に変えたら、syntax errorが、、、
参考サイト http://hijiriworld.com/web/serialize/
どうやら、s:1:"9"
は
1バイトの文字列「9」という意味らしい。
「10」って文字列に変更したかったら
s:2:"10"
ってやるのが正解らしい