La raison de cette situation m'échappe.
JSON échappe à la barre oblique, de sorte qu'un hachage {a: "a/b/c"}
est sérialisé comme {"a":"a\/b\/c"}
au lieu de {"a":"a/b/c"}
.
Pourquoi ?
La raison de cette situation m'échappe.
JSON échappe à la barre oblique, de sorte qu'un hachage {a: "a/b/c"}
est sérialisé comme {"a":"a\/b\/c"}
au lieu de {"a":"a/b/c"}
.
Pourquoi ?
El JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES
doit être par défaut, et non une option (étrange)... Comment le dire aux développeurs php ?
El par défaut L'utilisation la plus fréquente, et les normes (actuelles) les plus utilisées comme UTF8. Combien de fragments de code PHP sur Github ou autre ont besoin de cette fonction exotique "incorporé dans le HTML" ?
Bien dit ! Cependant, PHP promeut toutes ses erreurs bizarres dans le futur, pour ne pas casser les bugs communs précédents dans tous ces snippets PHP historiques corrompus qui se répandent partout dans le monde comme une peste. Ainsi, toutes les mauvaises décisions prises par PHP, c'est-à-dire presque toutes les décisions prises par PHP, deviennent la norme. Vous ne pouvez pas vous attendre à ce que les standards changent, c'est pourquoi chaque développeur PHP doit connaître et mettre en œuvre un nombre infini de solutions de contournement pour tous les bogues graves trouvés dans PHP. C'est là qu'intervient stackoverflow .
Vous avez complètement tort. C'est dû à JavaScript. Comme indiqué ci-dessous. En JS '\/' === '/'
retourne vrai. Je vous conseille de vous en tenir aux faits. La plupart des gens sont capables de s'accommoder de quelques noms de fonctions incohérents. Ce n'est pas parce que vous ne voyez pas plus loin que PHP est un mauvais outil.
Bonjour @Cobolt, C'est une vieille question, je n'utilise pas PHP aujourd'hui... Mais, comme blog de discussion, le noyau est "Le défaut DOIT être l'utilisation la plus fréquente" La laideur consiste donc à ignorer cette "utilisation la plus fréquente" du comportement (également laid) de Javascript.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
Pour information, je n'ai jamais vu de slashs avant échappés dans JSON, je viens de le remarquer avec la bibliothèque Java de code.google.com/p/json-simple
33 votes
PHP
json_encode()
échappe les barres obliques par défaut, mais l'optionJSON_UNESCAPED_SLASHES
option à partir de PHP 5.4.0 (mars 2012)10 votes
Voici un code PHP qui n'échappe pas tous les slashs, seulement dans les cas suivants
'</'
:echo str_replace('</', '<\/', json_encode($obj, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES));
0 votes
Le code inclut-il le '</' : ou commence-t-il par echo ? Parce que commencer par echo ne fonctionne pas pour moi. Je n'obtiens tout simplement rien. Oui, j'ai remplacé mon $obj par ma variable :)
1 votes
JSON n'échappe ou ne sérialise rien... votre sérialiseur JSON le fait. Lequel utilisez-vous ?