json_encode输出中不允许超过3个反斜杠。
P粉561749334
2023-08-08 21:02:30
<p>我有一段代码,用于处理非常大量的数据,并使用json_encode进行转换(大约255,000个字符)。但我注意到每次json_encode返回的结果中不会超过3个反斜杠。这是有意为之,还是一个错误,或者其他原因?</p>
<pre class="brush:php;toolbar:false;"><?php
header("content-type: application/json");
function Json_Zip($dir, $data) {
if ($dh = opendir($dir)) {
while (($entry2 = readdir($dh)) !== false) {
if ($entry2 != "." && $entry2 != "..") {
$entry2 = $dir . $entry2;
if (is_dir($entry2)) {
$data[$entry2] = 0;
$data = Json_Zip($entry2."/", $data);
} else {
$fileContent = file_get_contents($entry2);
$data[$entry2] = $fileContent;
}
}
}
}
return $data;
}
file_put_contents("content.json",json_encode(Json_Zip("./", []), JSON_UNESCAPED_UNICODE));</pre>
<p>当我使用一个脚本将文件转换为目录时,发生了这样的情况:<br /><br />(开始时:"hercher "Nom : Le mei")(经过json_encode后:"hercher "Nom : Le mei"),我尝试更新PHP版本,但没有任何改变。</p><p><br /></p>
我没有验证PHP中的函数,但是您的JSON输入是错误的。
JSON由键值对组成,例如:
或者多个由逗号分隔的键值对:
为了可读性,您可以稍微调整内容的排列方式,但从技术上讲这并非必需: