Duda PHP

Todso

Buenas.

Me gustaría que alguien me pudiera ayudar con un problema que me está dando mi código. No sé si esto es lo adecuado pero no he visto ningún hilo general de dudas y sí un par de dudas sueltas, espero no incumplir las normas.

Estoy haciendo un amago de web para un par de asignaturas de mi carrera y tenemos que tirar de web services, tirando, desde el lado de servidor, de patrón MVC.

El caso es que tengo ya el javascript y el php hechos, a falta de depurar, no he tenido mayor problema, a priori, con el web service pues es muy sencillo, pero a la hora de hacer la conexión o petición get, lo hago como nos han enseñado:

function mPedirTiempo($longitud, $latitud){

//Sustituir latitud y longitud (Ojo el orden)
$respuesta = http_get('http://www.myweather2.com/developer/forecast.ashx?uac=eQm4kuQdlH&query='.$latitud.','.$longitud.'&temp_unit=c&output=json&ws_unit=mps');
$respuesta_http=http_parse_message($respuesta);
$respuesta_json=$respuesta_http->body;

return $respuesta_json;
}

Y el error log de PHP me dice que: PHP Fatal error: Call to undefined function http_get() in /Applications/MAMP/htdocs/pruebaTiempo/modelo.php on line 6 (En mi código, la del http_get, aquí la 4).

He estado buscando por internet y de los casos más parecidos a los míos he sacado que se arregla o instalando una versión más nueva de PHP (yo la tengo muchísimo más nueva porque era de 2008 xD) o borrando una línea del fichero php.ini que en mi php.ini no está.

Alguien sabe cómo solucionar esto?

Gracias de antemano ^^

Kiroushi

Usar curl o file_get_contents en vez de http_get.

1 respuesta
Todso

#2 Con el file_get_contents me devuelve el json igualmente o hay que hacerle algo raro? Me evitaría así las dos instrucciones de parseo de después?

Prácticamente no hemos tocado esto y estoy más perdido que un hijoputa el día del padre xD

#4 Me parece que eso no me lo devuelve en JSON o no como debiera, porque ahora la función de vista en la que lo proceso me dice que los índices que uso están indefinidos y creo que están bien porque los estoy viendo en el navegador xDD. Muchas gracias ^^

Kiroushi

Prueba:

function mPedirTiempo($longitud, $latitud){
        return file_get_contents('http://www.myweather2.com/developer...unit=mps');
}
1 1 respuesta
txandy

#1 Si el problema es que no tienes el JSON php tiene un par de funciones json_decode y json_encode

NickNack

Como ya te han dicho por arriba, si la respuesta que tratas es JSON, con file_get_contents() y luego con json_decode

Todso

Ya uso el decode, la función donde uso lo que me devuelve la primera es ésta:

<?php

function vMostrarTiempo($respuestaJSON){

$array = json_decode($respuestaJSON, true);

$nowTemp = $array['weather']['curren_weather']['temp'];
$nowImage = $array['weather']['curren_weather']['weather_text'];
$fechaHoy = $array['weather']['forecast'][0]['date'];
$maxTempHoy = $array['weather']['forecast'][0]['day_max_temp'];
$minTempHoy = $array['weather']['forecast'][0]['night_min_temp'];

$futImage = $array['weather']['forecast'][1]['day']['weather_text'];
$futMaxTemp = $array['weather']['forecast'][1]['day_max_temp'];
$futMinTemp = $array['weather']['forecast'][1]['night_min_temp'];

$needed = array($nowTemp, $nowImage, $fechaHoy, $maxTempHoy, $minTempHoy, $futImage, $futMaxTemp, $futMinTemp);

echo json_encode($needed);
}

?>
Todso

Solucionado, muchas gracias ^^

19 días después
lxn_

Aprovecho el hilo, no consigo configurar el maldito Xdebug con el último Xampp, ¿alguien puede echarme un cable? :(

1 respuesta
elkaoD

#9 hazte tu propio hilo que vas a recibir más atención. Este ya se sabe que está solucionado y la gente lo ignorará.

(Te lo digo por experiencia, todos los "aprovechando este hilo..." acaban igual.)

Usuarios habituales

  • elkaoD
  • lxn_
  • Todso
  • NickNack
  • txandy
  • Kiroushi