ゆるーい備忘録

まいにちべんきょう

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"ってやるのが正解らしい