PHP json_decode on a 32bit server

做~自己de王妃 提交于 2019-12-03 14:50:50

You can use preg_replace to capture the numbers and add the quotes, something like this:

$jsonString = '[{"name":"john","id":5932725006},{"name":"max","id":4953467146}]';

echo preg_replace('/("\w+"):(\d+)/', '\\1:"\\2"', $jsonString);
//prints [{"name":"john","id":"5932725006"},{"name":"max","id":"4953467146"}]

Try the above example here.

If you use PHP 5.2 those long ids will be parsed into a float, which though not ideal at least gives you another 21 bits of integer precision, which should easily be enough to store those ids. (A 64-bit server would be ideal of course.)

If it comes down to it, you can attempt to use the big_int PECL extension. This lets PHP use numbers that are extraordinarily large, should you need to. It's a big leap, but if you're routinely dealing with numbers that border on the edge of mindnumbingness, you'll likely find it helpful.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!