Foros del Web » Programando para Internet » PHP »

problema con echo

Estas en el tema de problema con echo en el foro de PHP en Foros del Web. Hola a todos Estoy desarrollando un web service que debe devolver una serie de datos codificados en formato JSON. Estuve ojeando como 5 tutoriales sobre ...
  #1 (permalink)  
Antiguo 21/04/2010, 16:50
 
Fecha de Ingreso: abril-2009
Mensajes: 80
Antigüedad: 15 años
Puntos: 0
problema con echo

Hola a todos

Estoy desarrollando un web service que debe devolver una serie de datos codificados en formato JSON. Estuve ojeando como 5 tutoriales sobre WS y en todos ellos devuelven la informacion al usuario mediante un echo($respuesta) y se quedan tan frescos.

Yo hice lo mismo una vez tengo en el array lo k kiero devolver al usuario lo codifico en json y lo "devuelvo" con un echo. Los datos aparecen en el navegador y todo muy bonito, pero si el usuario quiere trastear con los datos, por ejemplo ver que hay en $respuesta[2] que deberia hacer?

Para probar mi propio servicio web cree un cliente muy sencillo que lo invoca mediante una sesion CURL, pero no soy capaz que el cliente pueda hacer nada con la informacion devuelta.

¿Podriais decirme que estoy haciendo mal?, ¿Realmente tiene el echo la capacidad de devolver informacion como si de un return se tratara?

Un saludo y muchas gracias a todos
  #2 (permalink)  
Antiguo 21/04/2010, 16:56
 
Fecha de Ingreso: diciembre-2006
Mensajes: 60
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: problema con echo

no se si entendi bien pero prueba con la funcion
print_r();
devuelve todos los datos de la variable, en este caso un array

saludos
  #3 (permalink)  
Antiguo 21/04/2010, 17:09
 
Fecha de Ingreso: abril-2009
Mensajes: 80
Antigüedad: 15 años
Puntos: 0
Respuesta: problema con echo

Gracias por la respuesta

Pero tampoco funciona. Sale por pantalla toda la informacion, pero luego en el cliente no puedo, por ejemplo, meter el array codificado en JSON dentro de una variable para mas tarde decodificarla y extraer la informacion de los diferentes campos del array
  #4 (permalink)  
Antiguo 21/04/2010, 17:12
 
Fecha de Ingreso: diciembre-2006
Mensajes: 60
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: problema con echo

no entiendo bien como funciona json pero si quieres enviar la variable a un cliente externo, te recomiendo que la envies en el formato que te da print_r
luego la limpies con json separando las etiquetas
la otra es que en php imprimas la variable como la pedira el cliente

variable (dato, otrodato, otro) para simplificarte la vida

explicate mejor o da algun codigo :P
  #5 (permalink)  
Antiguo 21/04/2010, 17:37
 
Fecha de Ingreso: abril-2009
Mensajes: 80
Antigüedad: 15 años
Puntos: 0
Respuesta: problema con echo

Si a ver k soy un poco pifias explicandome.

La estructura es la siguiente por un lado tenemos un servicio web de tipo REST y un cliente que consume dicho servicio web.

El cliente hace una peticion incluyendo en la URL una serie de parametros.
El serivicio web analiza dichos parametros y estudia que informacion devolver al cliente, la introduce en un array y la codifica en formato JSON, que no es mas que una manera de comprimir los datos. Hasta aki todo bien. El problema es que el servicio web tiene que devolver ese array de datos al cliente de alguna manera. Si el web service fuera una funcion, en vez de una pagina, haria "return $respuesta;" y ya estaba, pero al ser una pagina no se me ocurre como hacerlo.

Estuve mirando tutoriales y ellos siempre lo resuelven con un "echo $respuesta;" yo hice eso y lo unico que consigo es que en el navegador se muestre el array codificado, pero al cliente no le esta llegando nada :S

Este es la parte del scrip correspondiente al servicio web (solo lo relativo a la devolucion de la informacion en JSON):

$respuesta=array('Status'=>$errores,'Features'=>$d atos, 'Found'=>$num, 'Bounds'=>$posicion);

header('Content-type: application/json');

echo json_encode($respuesta);


Ahora pongo la parte de codigo correspodiente al cliente que hace la peticion:
*en la variable $url ya esta la url a invocar junto con sus parametros**

$ch = curl_init(); //creamos sesion

curl_setopt($ch, CURLOPT_TIMEOUT, 10); //indicamos las opciones
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$respuesta = curl_exec($ch);//llamamos al servicio web y recuperamos la informacion

print_r($responseBody);

curl_close($ch); //cerramos sesion

Muchas gracias y saludos, si consideras que necesitas mas informacion comentame

Etiquetas: echo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:09.