Ver Mensaje Individual
  #5 (permalink)  
Antiguo 02/11/2015, 10:58
goalkeaper
 
Fecha de Ingreso: octubre-2009
Mensajes: 22
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema con json_encode

Hola, te pongo lo que me saca antes y despues del encode:

Haciendo var_dump($article) saca esto:


Código:
      array(5) {
  ["id"]=>
  string(2) "80"
  ["title"]=>
  string(51) "Como pasar variable GET en la URL con jQuery Mobile"
  ["fecha"]=>
  string(19) "10-04-2014 16:51:44"
  ["texto"]=>
  string(2222) "<p><img style="float:left;margin-right:15px;width:250px;" src="./recursos/logo-jquery-mobile.png" alt="jQuery mobile"/>Son muchas las ventajas de utilizar <span class="texto-amarillo">jQuery Mobile</span> pero, a veces, tambi&eacute;n nos encontramos con problemas que habitualmente no encontrar&iacute;amos y el utilizar jQuery Mobile lo complica un poco.</p>

<p>En este caso, si queremos <span class="texto-amarillo">pasar par&aacute;metros</span> a trav&eacute;s de la <span class="texto-amarillo">URL</span> igual que har&iacute;amos en HTML, por ejemplo, <span class="texto-verde">www.midominio.com/verNoticia?id=12</span> , nuestra primera idea para hacer esto ser&iacute;a poner un enlace parecido a esto:</p>

<pre class="brush:xml">

	<a href="#verNoticia?12" data-role="button">Ver noticia 12</a>
	
</pre>

<p>Sin embargo, esa variable es obviada por <span class="texto-amarillo">jQuery Mobile</span> a la hora de cambiar de p&aacute;gina y no funciona. La mejor forma de conseguir esa funcionalidad es utilizar el <span class="texto-amarillo">almacenamiento en sesi&oacute;n</span> mediante <span class="texto-verde">sessionStorage()</span>.</p>

<p>Para hacerlo deber&iacute;amos hacer algo como lo siquiente:</p>

<pre class="brush:xml">
	<a href="#verNoticia" onclick="sessionStorage.idVerNoticia='12';" data-role="button"> Ver noticia 12	</a>
</pre>

<p>Una vez que clicamos sobre el enlace para acceder al detalle de la noticia debemos tratar de <span class="texto-amarillo">recuperar ese par&aacute;metro</span> en la pagina de detalle. Para hacer debemos hacer lo siguiente:</p>

<pre class="brush:js">

	<script type="text/javascript">
		
		$("#verNoticia").on("pageshow", function(){	
		
			var idNoticia=sessionStorage.idVerNoticia;
			
			/** Una vez obtenido el ID de noticia hacemos lo necesario para cargar los datos de la noticia **/
		
		});
	
	</script>	
	
</pre>

<p>Como v&eacute;is, justo antes de mostrar el contenido de la p&aacute;gina recuperamos el ID de la noticia y hacemos las operaciones oportunas para cargar los datos de esa noticia.</p>

<p>Esta es la forma m&aacute;s sencilla de pasar y recuperar variables GET a trav&eacute;s de URL.</p>"
  ["comentarios"]=>
  array(4) {
    [0]=>
    array(4) {
      ["id"]=>
      string(5) "23925"
      ["nombre"]=>
      string(30) "Sergio Gonz&aacute;lez Barrios"
      ["fecha"]=>
      string(19) "10-04-2014 16:51:44"
      ["texto"]=>
      string(154) "sessionStorage te permite guardar tantas variables como desees. POr ejemplo:

onclick="sessionStorage.idVerNoticia='12';sessionStorage.nombre='sergio';""
    }
    [1]=>
    array(4) {
      ["id"]=>
      string(5) "23906"
      ["nombre"]=>
      string(7) "Andrezs"
      ["fecha"]=>
      string(19) "10-04-2014 16:51:44"
      ["texto"]=>
      string(21) "SI son varios Datos??"
    }
    [2]=>
    array(4) {
      ["id"]=>
      string(5) "23657"
      ["nombre"]=>
      string(30) "Sergio Gonz&aacute;lez Barrios"
      ["fecha"]=>
      string(19) "10-04-2014 16:51:44"
      ["texto"]=>
      string(336) "Creo recordar que web storage solo se puede usar para navegadores web como su definici&oacute;n indica. Si quieres usar storage para app m&oacute;viles deber&iacute;as utilizar el sessionStorage o locaStorage que funcionan muy bien. 

Yo personalmente desaconsejar&iacute;a el web storage ya que muchos navegadores no lo soportan.

"
    }
    [3]=>
    array(4) {
      ["id"]=>
      string(5) "23648"
      ["nombre"]=>
      string(6) "andres"
      ["fecha"]=>
      string(19) "10-04-2014 16:51:44"
      ["texto"]=>
      string(86) "Hola e Web Storage  funciona con los navegadores y etc, y con  mobiles.???
Gracias!! "
    }
  }
}


Y haciendo var_dump($json);

Código:
string(3487) "{"id":"80","title":"Como pasar variable GET en la URL con jQuery Mobile","fecha":"10-04-2014 16:51:44","texto":"<p><img style=\"float:left;margin-right:15px;width:250px;\" src=\".\/recursos\/logo-jquery-mobile.png\" alt=\"jQuery mobile\"\/>Son muchas las ventajas de utilizar <span class=\"texto-amarillo\">jQuery Mobile<\/span> pero, a veces, tambi&eacute;n nos encontramos con problemas que habitualmente no encontrar&iacute;amos y el utilizar jQuery Mobile lo complica un poco.<\/p>\r\n\r\n<p>En este caso, si queremos <span class=\"texto-amarillo\">pasar par&aacute;metros<\/span> a trav&eacute;s de la <span class=\"texto-amarillo\">URL<\/span> igual que har&iacute;amos en HTML, por ejemplo, <span class=\"texto-verde\">www.midominio.com\/verNoticia?id=12<\/span> , nuestra primera idea para hacer esto ser&iacute;a poner un enlace parecido a esto:<\/p>\r\n\r\n<pre class=\"brush:xml\">\r\n\r\n\t<a href=\"#verNoticia?12\" data-role=\"button\">Ver noticia 12<\/a>\r\n\t\r\n<\/pre>\r\n\r\n<p>Sin embargo, esa variable es obviada por <span class=\"texto-amarillo\">jQuery Mobile<\/span> a la hora de cambiar de p&aacute;gina y no funciona. La mejor forma de conseguir esa funcionalidad es utilizar el <span class=\"texto-amarillo\">almacenamiento en sesi&oacute;n<\/span> mediante <span class=\"texto-verde\">sessionStorage()<\/span>.<\/p>\r\n\r\n<p>Para hacerlo deber&iacute;amos hacer algo como lo siquiente:<\/p>\r\n\r\n<pre class=\"brush:xml\">\r\n\t<a href=\"#verNoticia\" onclick=\"sessionStorage.idVerNoticia='12';\" data-role=\"button\"> Ver noticia 12\t<\/a>\r\n<\/pre>\r\n\r\n<p>Una vez que clicamos sobre el enlace para acceder al detalle de la noticia debemos tratar de <span class=\"texto-amarillo\">recuperar ese par&aacute;metro<\/span> en la pagina de detalle. Para hacer debemos hacer lo siguiente:<\/p>\r\n\r\n<pre class=\"brush:js\">\r\n\r\n\t<script type=\"text\/javascript\">\r\n\t\t\r\n\t\t$(\"#verNoticia\").on(\"pageshow\", function(){\t\r\n\t\t\r\n\t\t\tvar idNoticia=sessionStorage.idVerNoticia;\r\n\t\t\t\r\n\t\t\t\/** Una vez obtenido el ID de noticia hacemos lo necesario para cargar los datos de la noticia **\/\r\n\t\t\r\n\t\t});\r\n\t\r\n\t<\/script>\t\r\n\t\r\n<\/pre>\r\n\r\n<p>Como v&eacute;is, justo antes de mostrar el contenido de la p&aacute;gina recuperamos el ID de la noticia y hacemos las operaciones oportunas para cargar los datos de esa noticia.<\/p>\r\n\r\n<p>Esta es la forma m&aacute;s sencilla de pasar y recuperar variables GET a trav&eacute;s de URL.<\/p>","comentarios":[{"id":"23925","nombre":"Sergio Gonz&aacute;lez Barrios","fecha":"10-04-2014 16:51:44","texto":"sessionStorage te permite guardar tantas variables como desees. POr ejemplo:\r\n\r\nonclick=\"sessionStorage.idVerNoticia='12';sessionStorage.nombre='sergio';\""},{"id":"23906","nombre":"Andrezs","fecha":"10-04-2014 16:51:44","texto":"SI son varios Datos??"},{"id":"23657","nombre":"Sergio Gonz&aacute;lez Barrios","fecha":"10-04-2014 16:51:44","texto":"Creo recordar que web storage solo se puede usar para navegadores web como su definici&oacute;n indica. Si quieres usar storage para app m&oacute;viles deber&iacute;as utilizar el sessionStorage o locaStorage que funcionan muy bien. \r\n\r\nYo personalmente desaconsejar&iacute;a el web storage ya que muchos navegadores no lo soportan.\r\n\r\n"},{"id":"23648","nombre":"andres","fecha":"10-04-2014 16:51:44","texto":"Hola e Web Storage  funciona con los navegadores y etc, y con  mobiles.???\r\nGracias!! "}]}"


Como ves, antes se ve correctamente el código HTML del campo 'texto' y en el DESPUES muchos de los caracteres han sido transformados.