我有从数据库返回的这个JSON字符串
[{"id":"1723","name":"Picanha bovina Maturatta 15,00 250 ","slug":"picanha-bovina-maturatta-15-00-250"}]
实际上还有其他的东西,但我从示例中删除了它。
当用户以CSV格式上传文件时,此数据会保存到数据库中(因此他们只能从Excel或Google云端硬盘导出数据,而无需在CMS中逐项添加)。
现在,当我获取此数据并将其发送到Javascript并使用JSON解析时,它会出现“意外令牌[tab]”错误。
我尝试了几件事来取代它
$json = json_encode($input);
$json = str_replace(array("\r\n", "\r", "\n", "\t", " "), "", $json);
$json = implode(' ',explode("\t", $json));
$json = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $json);
$json = trim(preg_replace('/\s+/', '', $json));
$json = preg_replace('!\s+!m', ' ', $json);
这些都不起作用。为什么不呢?
注1:如果我在REGEX字符串中使用/ g变为空白
注意2:我确定有一个\ tab字符,因为如果我在Chrome上按CTRL + F或将其复制/粘贴到Gedit或http://json.parser.online.fr/我就能看到它。
注3:我直接在代码上更改了输入,比如“test \ t \ t \ t \ t ttest”,它仍然可以正常工作
注意4:Javascript可以替换它:JSON.parse(PRODUCTS.split("\t").join(" "))
并且它可以正常工作
任何人都知道为什么?
答案 0 :(得分:0)
preg_replace('/\t+/', '', $string)