2 votos

Como crear un json con PHP

Quiero crear un json que se mantenga actualizado siempre con todo los datos que se han guardado en phpmyadmin haciendo una consulta, cual es la mejor forma de hacerlo?

Acabo de ver un tutorial en donde modifican el HTACCESS:

Options +FollowSymlinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^json/([^\.]+).json json.php?url=$1

json.php:

header('Content-Type: application/json');
$users=array(
    array(
        'nombre'=>'Jose',
        'edad'=>'20',
        'genero'=>'masculino',
        'email'=>'correodejose@dominio.com',
        'localidad'=>'Madrid',
        'telefono'=>'91000000'
    ),
    array(
        'nombre'=>'Jose',
        'edad'=>'20',
        'genero'=>'masculino',
        'email'=>'correodejose@dominio.com',
        'localidad'=>'Madrid',
        'telefono'=>'91000000'
    )
);
echo json_encode($users);

Pero a la hora de querer obtener los datos me sale lo siguiente:

Warning: file_get_contents(json/users.json): failed to open stream: No such file or directory in D:\Dropbox\www\json\decode.php on line 3

Pero si entro a mi url http://localhost/json/json/users.json si me carga, obviamente por el htaccess...

decode.php:

$datos_clientes=file_get_contents("json/users.json");
$json_clientes=json_decode($datos_clientes, true);

foreach($json_clientes as $cliente){
    echo $cliente["nombre"]."<br>";
}

Saludos.

2voto

Ivan Muñoz Puntos1120

Esto sucede porque en el htaccess creaste una regla para la reescritura de la url por eso fuciona al entrar por la url, pero a hacer file_get_contents("json/users.json") no estas entrando a traves de esa url, sino que estas leyendo el archivo json/users.json por eso te sale el error de que el archivo no existe "No such file or directory" , debes poner la url completa para que sepa que debe leer una url y no un archivo local, entonces te quedaria como

$datos_clientes=file_get_contents("http://localhost/json/json/users.json");
$json_clientes=json_decode($datos_clientes, true);

foreach($json_clientes as $cliente){
    echo $cliente["nombre"]."<br>";
}

Proba asi aver si te funciona

1 votos

Grande IVAN :DDD

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: