{"id":447,"date":"2008-12-22T00:21:05","date_gmt":"2008-12-22T08:21:05","guid":{"rendered":"http:\/\/www.codebelay.com\/blog\/?p=447"},"modified":"2008-12-22T00:21:05","modified_gmt":"2008-12-22T08:21:05","slug":"another-hackday-update-php-unserialize-doesnt-quite-do-it","status":"publish","type":"post","link":"https:\/\/www.codebelay.com\/blog\/2008\/12\/22\/another-hackday-update-php-unserialize-doesnt-quite-do-it\/","title":{"rendered":"Another Hackday Update: PHP unserialize doesn&#8217;t quite do it"},"content":{"rendered":"<p>Wow, I had to use someone&#8217;s custom unserialize code because PHP&#8217;s unserialize doesn&#8217;t quite work multi-byte strings. \ud83d\ude41 Time wasted: 3 hours.<\/p>\n<p>Here&#8217;s the function: <\/p>\n<div style=\"color: #fff; background: #000; padding: 5px;\">\nfunction mb_unserialize($serial_str) {<br \/>\n   $out = preg_replace(&#8216;!s:(\\d+):&#8221;(.*?)&#8221;;!se&#8217;, &#8216;&#8221;s:&#8221;.strlen(&#8220;$2&#8243;).&#8221;:\\&#8221;$2\\&#8221;;&#8221;&#8216;, $serial_str);<br \/>\n   return unserialize($out);<br \/>\n}\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Wow, I had to use someone&#8217;s custom unserialize code because PHP&#8217;s unserialize doesn&#8217;t quite work multi-byte strings. \ud83d\ude41 Time wasted: 3 hours. Here&#8217;s the function: function mb_unserialize($serial_str) { $out = preg_replace(&#8216;!s:(\\d+):&#8221;(.*?)&#8221;;!se&#8217;, &#8216;&#8221;s:&#8221;.strlen(&#8220;$2&#8243;).&#8221;:\\&#8221;$2\\&#8221;;&#8221;&#8216;, $serial_str); return unserialize($out); }<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,56,33],"tags":[129,391,395,238],"class_list":["post-447","post","type-post","status-publish","format-standard","hentry","category-announcements","category-php","category-webapps","tag-hackday","tag-php","tag-wordpress","tag-wordpress-dev2live"],"_links":{"self":[{"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/posts\/447","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/comments?post=447"}],"version-history":[{"count":0,"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/posts\/447\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/media?parent=447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/categories?post=447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codebelay.com\/blog\/wp-json\/wp\/v2\/tags?post=447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}