DEV Community

Bogdan Alexandru Militaru
Bogdan Alexandru Militaru

Posted on • Originally published at boobo94.github.io on

Unserialize php in Javascript Nodejs

import PhpUnserialize from 'php-unserialize';

const serialized = 'a:0:{}'
const jsObject = PhpUnserialize.unserialize(serialized);
console.log(jsObject) // {}

Enter fullscreen mode Exit fullscreen mode

NPM Library: https://www.npmjs.com/package/php-unserialize

What happens if your serialized string contains special characters ? yeah, it fails!

In order to solve that we can use

import encoding from 'encoding';

export function convertToUtf8Win1252(str) {
  return encoding.convert(str, 'WINDOWS-1252').toString();
}

Enter fullscreen mode Exit fullscreen mode

So mixing both functions:

export function unserializePhp(str) {
  return PhpUnserialize
    .unserialize(convertToUtf8Win1252(str));
}

Enter fullscreen mode Exit fullscreen mode

NPM Library: https://www.npmjs.com/package/encoding

Discussion (0)