Pas plus de 3 barres obliques inverses sont autorisées dans la sortie json_encode.
P粉561749334
2023-08-08 21:02:30
<p>J'ai un morceau de code qui gère une très grande quantité de données et les convertit à l'aide de json_encode (environ 255 000 caractères). Mais j'ai remarqué qu'à chaque fois json_encode ne renvoie pas plus de 3 barres obliques inverses dans le résultat. Est-ce intentionnel, un bug ou autre chose ? </p>
<pre class="brush:php;toolbar:false;"><?php
header("type de contenu : application/json");
fonction Json_Zip ($dir, $data) {
si ($dh = opendir($dir)) {
while (($entry2 = readdir($dh)) !== false) {
if ($entry2 != "." && $entry2 != "..") {
$entrée2 = $rép . $entrée2;
si (is_dir($entry2)) {
$données[$entrée2] = 0 ;
$data = Json_Zip($entry2."/", $data);
} autre {
$fileContent = file_get_contents($entry2);
$data[$entry2] = $fileContent;
}
}
}
}
renvoyer $données ;
}
file_put_contents("content.json",json_encode(Json_Zip("./", []), JSON_UNESCAPED_UNICODE));</pre>
<p>Lorsque j'utilise un script pour convertir un fichier en répertoire, cela se produit : <br /><br /> (en commençant par : "hercher "Nom : Le mei") (après json_encode Après : "hercher "Nom : Le mei"), j'ai essayé de mettre à jour la version PHP, mais rien n'a changé. </p><p><br /></p>
Je n'ai pas vérifié la fonction en PHP, mais votre entrée JSON est fausse.
JSON se compose de paires clé-valeur, par exemple :
ou plusieurs paires clé-valeur séparées par des virgules :
Vous pouvez légèrement ajuster la disposition de votre contenu pour plus de lisibilité, mais ce n'est pas techniquement nécessaire :