【发布时间】:2014-11-28 19:22:33
【问题描述】:
我使用 Laravel,将 db 行加载到 Eloquent 对象中。其中一列是 longtext,一个 JSON 编码的数组,长度 > 200 万个字符。我得到的原始错误是 json_decode 在此列的值上失败。
我在修补程序中进行了测试。简化测试代码:
$item = Item::find(1);
echo $item->long_text_field;
var_dump(json_decode($item->long_text_field));
echo strlen($item->long_text_field);
在我的本地 vagrant 实例上,这显示了正确的值。
...long json array in text, same as the value in the actual DB entry...
...var_dump of json array...
2334040
但是在我的远程开发服务器上我得到了
...long json array truncated in the middle...
NULL
1048576
显然 json_decode 失败,因为字符串被截断。
像这样截断一段
"Eff Date":"1\”
应该是这样的
"Eff Date":"1\/30\/14 16:13”
在长文本中有很多这样的转义斜线,我当时看不到任何奇怪的字符。有谁知道为什么这个文本会在一台服务器上截断,而不是另一台?
【问题讨论】:
标签: php mysql json laravel longtext