print json_encode funcion ejemplo array php json

json_encode - print json php



json_encode() escapando barras diagonales (3)

¿Hay alguna forma de desactivarlo?

Sí, solo necesita usar el indicador JSON_UNESCAPED_SLASHES .

! importante lea antes: https://stackoverflow.com/a/10210367/367456 (sepa con lo que está tratando - conozca a su enemigo)

json_encode($str, JSON_UNESCAPED_SLASHES);

Si no tiene PHP 5.4 a mano, elija una de las muchas funciones existentes y modifíquelas según sus necesidades, por ejemplo, http://snippets.dzone.com/posts/show/7487 (copia archivada) .

Ejemplo de demostración

<?php /* * Escaping the reverse-solidus character ("/", slash) is optional in JSON. * * This can be controlled with the JSON_UNESCAPED_SLASHES flag constant in PHP. * * @link http://stackoverflow.com/a/10210433/367456 */ $url = ''http://www.example.com/''; echo json_encode($url), "/n"; echo json_encode($url, JSON_UNESCAPED_SLASHES), "/n";

Ejemplo de salida:

"http:////www.example.com//" "http://www.example.com/"

Estoy sacando JSON de Instagram:

$instagrams = json_decode($response)->data;

A continuación, se analizan las variables en una matriz de PHP para reestructurar los datos y luego se vuelve a codificar y almacenar en caché el archivo:

file_put_contents($cache,json_encode($results));

Cuando abro el archivo de caché, todas mis barras diagonales "/" se están escapando:

http:////distilleryimage4.instagram.com//410e7...

De mis búsquedas, json_encode() que json_encode() hace esto automáticamente ... ¿hay alguna forma de desactivarlo?


Por otro lado, tenía un problema con PHPUNIT afirmando que las URL estaban contenidas en o igual a una url que estaba json_encoded -

mi esperado:

http://localhost/api/v1/admin/logs/testLog.log

estaría codificado para:

http:////localhost//api//v1//admin//logs//testLog.log

Si necesita hacer una comparación, transforma la url usando:

addcslashes($url, ''/'')

permitido el rendimiento adecuado durante mis comparaciones.


Yes , pero no lo hace: escapar de las barras diagonales es algo bueno . Cuando se usa JSON dentro de las etiquetas <script> es necesario como </script> cualquier lugar, incluso dentro de una cadena, terminará la etiqueta del script.

Dependiendo de dónde se use el JSON, no es necesario, pero se puede ignorar de forma segura.