Deseamos enseñarte la mejor respuesta que descubrimos por todo internet. Deseamos que te sirva de ayuda y si deseas comentarnos alguna mejora hazlo con libertad.
Solución:
Necesitará htmlspecialchars
en vez de stripslashes
con la codificación adecuada (UTF-8, si su página usa el juego de caracteres UTF-8) y ENT_QUOTES
que escapará de las comillas dobles para evitar que los datos se rompan. Vea el código a continuación:
echo htmlspecialchars(json_encode($data), ENT_QUOTES, 'UTF-8');
json_encode
ya se encarga de esto, estás rompiendo el resultado llamando stripslashes
:
echo json_encode($data); //properly formed json
Ejemplo con un sencillo array con double quotes
string valor.
$yourArr = array(
'title' => 'This is an example with "double quote" check it'
);
// add htmlspecialchars as UTF-8 after encoded
$encodeData = htmlspecialchars(json_encode($yourArr), ENT_QUOTES, 'UTF-8');
echo $encodeData;
Resultado:
"title":"This is an example with "double quote" check it"
De acuerdo con el manual de PHP:
Dicho esto, las comillas ” producirán JSON no válido, pero esto solo es un problema si está usando json_encode() y solo espera que PHP escape mágicamente de sus comillas. Debe escapar usted mismo.
Si guardas algún reparo o disposición de medrar nuestro crónica puedes ejecutar un paráfrasis y con gusto lo estudiaremos.