viernes, 15 de agosto de 2014

JSON y PHP : Leer y devolver JSON

Hola, este post va dedicado a un par de amigos entusiastas de la programación que van junto a mi de la mano en este camino del saber. En esta ocasión veremos como recibir parámetros en PHP y comporbar su existencia en una fuentes de datos; en nuestro caso, un fichero JSON ( podría de un base de datos, un fichero xml e incluso un fichero de texto plano). La intensión es poder leer desde el JSON y devolver un JSON.
Manos a la obra:

Para esta "receta" necesitamos:

1. Un servidor xamp, wamp o lamp dependiendo del gusto del "chef"
1. Un fichero JSON
2. Un programa PHP que haga que deseamos.

1. Fichero JSON ( usuarios.json )
    --------------------------------
 
[{"usuario":"yo","contrasenia":"si"}]


2. Fichero PHP (servidor.php )
    --------------------------------
<?php

 $parametroRecibidoUsuario =$_GET['usuario']; 
 $parametroRecibidoPass =$_GET['contrasenia']; 

 // Guardo el contenido del fichero de usuarios 
 $ficheroUsuarios = file_get_contents('usuarios.json'); 

 // Decodifico el fichero JSON en un array $datosJSON =  json_decode($ficheroUsuarios,true); 

 // Construyo mi array de mensajes para los resultados 
 $resultados = array(); 

 // Recorro los elementos del array JSON ($datosJSON) 
 foreach($datosJSON as $obj){ 

      // Por cada elemento del array obtengo el usuario y contraseña 
      $usuario = $obj['usuario']; 
      $contrasenia = $obj['contrasenia']; 

      // Creo un array para los mensajes 
      $mensajes = array(); 
      
      // Comparo los datos envidos con los datos leídos 
      if($usuario == $parametroRecibidoUsuario && $contrasenia ==
         parametroRecibidoPass){ 
         
         // Creo el elemento 'mensajeok' en el array 'mensajes' 
         $mensajes['mensaje'] = 'Hola '.$usuario; 
         
        // Aqui se pueden introducir muchos mas campos; de momento solo uno 
        // Meto en array de mensajes en el array 'resultados' 
        array_push($resultados, $mensajes); 
      }else{ 
            $mensajes['mensaje'] = 'No te has podido conectar'; 
            array_push($resultados, $mensajes); 
      } 
 } 

 /* Finalmente convierto los resultados a formato json*/ 
 $resultadosJson = json_encode($resultados); 

 /* Devuelvo el json */ 
 echo $resultadosJson; 
?>

¡¡¡ Listo !!! para probar si funciona haremos los siguiente:

http://nombredemidominio.com/servidor.php?usuario=yo&contrasenia=si


¿Quieres descargar el código?.... has click aqui

No hay comentarios:

Publicar un comentario