locutusjs / locutus

Bringing stdlibs of other programming languages to JavaScript for educational purposes

Home Page:https://locutus.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BUG : php function unserialize not working

darkworks opened this issue · comments

thanks for creating the amazing library , i have found issue with unserialize function it work with small data but not with big serialzied data can u guys pls check it out

sample code

var unserialize = require('locutus/php/var/unserialize');

var php_serialzed_data = 'a:11:{s:4:"name";s:2:"c3";s:9:"footprint";s:10:"1608[0603]";s:8:"width_mm";s:3:"0.9";s:9:"length_mm";s:3:"2.2";s:10:"total_pads";s:1:"2";s:9:"pad_sizes";a:2:{s:4:"left";a:4:{s:5:"width";s:4:"2.55";s:6:"length";s:4:"2.27";s:8:"width_mm";s:3:"0.9";s:9:"length_mm";s:3:"0.8";}s:5:"right";a:4:{s:5:"width";s:4:"2.55";s:6:"length";s:4:"2.27";s:8:"width_mm";s:3:"0.9";s:9:"length_mm";s:3:"0.8";}}s:19:"internal_spacing_mm";s:3:"2.2";s:11:"center_pads";s:1:"2";s:3:"mpn";s:13:"399-1095-1-ND";s:10:"visibility";s:4:"true";s:5:"valid";s:7:"pending";}';

 console.log(php_serialzed_data+"\n\n");


var data = unserialize(php_serialzed_data);

console.log(data);

giving me error

RangeError: Invalid array length
    at expectArrayItems (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:379:19)
    at expectArray (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:340:15)
    at expectType (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:46:14)
    at expectArrayItems (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:375:12)
    at expectArray (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:340:15)
    at expectType (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:46:14)
    at expectArrayItems (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:375:12)
    at expectArray (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:340:15)
    at expectType (/home/runner/unserialize-php-serialized-data-in-js/node_modules/locutus/php/var/unserialize.js:46:14)
false
Hint: hit control+c anytime to enter REPL.

i tested it on : https://replit.com/

thanks

Hi @darkworks . Thank you for reporting the bug. I'm on it. I think I already know the problem, now need to figure out a fix.

@kvz can you please do another release with this bugfix?