<?php
$X = file_get_contents("测试.json");
$X = json_decode($X, true);
foreach ($X as $Y => $Z){
echo $Y.$Z;
}
上述代码运行后报错:invalid argument suplied,foreach的参数无效。
测试.json的内容是:
{"测试1":"测试1","测试2":"测试2"}
对此,解决方式是:
<?php
$X = file_get_contents("测试.json");
$X = str_replace(chr(239).chr(187).chr(191),"",$X);
$X = json_decode($X, true);
foreach ($X as $Y => $Z){
echo $Y.$Z;
}
这个bug的原理是:读取文本文件时会默认增加一个不可见的符号【chr(239).chr(187).chr(191)】,这个符号会导致json_decode出bug,进而导致foreach出bug。所以在json_decode之前需要先把这个符号删掉。