Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Leer json desde url externa

Estas en el tema de Leer json desde url externa en el foro de PHP en Foros del Web. Hola, esto tratando de leer un json que me proporciona una url externa, en mi servidor local me funciona todo correctamente pero una vez lo ...
  #1 (permalink)  
Antiguo 23/01/2016, 07:13
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Leer json desde url externa

Hola,

esto tratando de leer un json que me proporciona una url externa, en mi servidor local me funciona todo correctamente pero una vez lo subo al host, no me funciona.

Código PHP:
$html file_get_contents('http://api.openweathermap.org/data/2.5/weather?id=3003603&lang=es&units=metric');

$json json_decode($html);

$ciudad $json->name;
$lat $json->coord->lat;
$lon $json->coord->lon;

echo 
$ciudad;
echo 
'<br>';
echo 
$lat;
echo 
'<br>';
echo 
$lon
Como digo, en el host local, todo funciona perfecto, me lee el json, le puedo hacer un print_r al $json, un var_dump, y me aparece el json sin problemas. Una vez que lo subo a mi servidor, el mensaje que me da el var_dump es NULL.

Gracias.
  #2 (permalink)  
Antiguo 23/01/2016, 07:55
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Leer json desde url externa

Prueba haciendo var_dump de la variable html luego del file_get_content porque puede ser que no esté llegando el json o que llegue acompañado de algo más como suele suceder en servidores web gratuitos donde le agregan código javascript para estadísticas de uso de la página.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 23/01/2016, 08:26
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Leer json desde url externa

El servidor no es gratuito, aún así, he quitado todo el código y dejado sólo el file_get_content y el var_dump. La respuesta es esta: bool(false)
  #4 (permalink)  
Antiguo 23/01/2016, 08:29
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Leer json desde url externa

Y si copias y pegas tal cual como tienes la url en el navegador te muestra algo?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 23/01/2016, 09:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Leer json desde url externa

Sí, el json:
Código PHP:
{"coord":{"lon":0.2,"lat":48},"weather":[{"id":803,"main":"Clouds","description":"nubes rotas","icon":"04d"}],"base":"cmc stations","main":{"temp":7.3,"pressure":1036.17,"humidity":98,"temp_min":7.3,"temp_max":7.3,"sea_level":1047.72,"grnd_level":1036.17},"wind":{"speed":3.81,"deg":146.501},"clouds":{"all":64},"dt":1453558360,"sys":{"message":0.003,"country":"FR","sunrise":1453534646,"sunset":1453567509},"id":3003603,"name":"Le Mans","cod":200
  #6 (permalink)  
Antiguo 23/01/2016, 09:30
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: Leer json desde url externa

Revisa que esté activada la función file_get_content en el archivo php.ini. Mira este tema y este otro.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #7 (permalink)  
Antiguo 23/01/2016, 10:08
 
Fecha de Ingreso: febrero-2009
Mensajes: 44
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Leer json desde url externa

La función file_get_content estaba desactivada. He usado cURL que sí estaba activo.

Muchas gracias por tu tiempo.

Tema resuelto.

Etiquetas: externa, html, json, url
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:02.