NewPointsShopというmodであるMyBBを使用しています。
これはシリアル化されたフィールドです。
$barnInfo['newpoints_items'] = "a:7:{i:0;s:1:"2";i:1;s:1:"2";i:2;s:1:"2";i:3;s:1:"2";i:4;s:1:"5";i:5;s:1:"7";i:6;s:1:"7";}"
// the deserialized field represents this data:
4 Lumber (Item ID 2)
1 Mushroom (Item ID 5)
2 Carrot (Item ID 7)
(And perhaps 0 of every other item - there are 9 items: Item ID 1, 2, 3, ...7, 8, 9)
彼らのコードでは、彼らは
$items = unserialize($barnInfo['newpoints_items']);
このデータを操作するのに本当に苦労しています。デシリアライズされたデータを画面に印刷できるかどうか、それをどのように操作するかがわかります。しかし、意味のあるものを印刷する方法がわかりません。print_rで遊んだのですが、うまくいきませんでした。
// displays '1' , quite unhelpful!
print_r(unserialize($barnInfo['newpoints_items'] ))
// I tried and got very confusing results that don't seem to correspond at all http://blog.tanist.co.uk/files/unserialize/index.php
質問:逆シリアル化されたデータを画面に印刷して、何が何であるかを理解するにはどうすればよいですか?
*回答:* MyBBは画面に物を印刷するのに少し注意が必要ですが、これは機能します。"<pre>" . htmlspecialchars(print_r($items, true)) . "</pre> ... "