Cómo usar PHP para llamar a la interfaz API para implementar la función de consulta meteorológica
Cuando estaba probando la plataforma pública WeChat recientemente, quería agregar una función para consultar el clima en los próximos días (incluido hoy) en el submenú, así que busqué una interfaz útil para consultar el pronóstico del tiempo. API y lo usé para comparar Hay muchos: interfaz meteorológica de la Administración Meteorológica Nacional, interfaz meteorológica de Sina, interfaz meteorológica de Baidu, interfaz meteorológica de Google, interfaz meteorológica de Yahoo, etc. Utilizo la API de interfaz de consulta meteorológica gratuita proporcionada por Baidu. compártelo contigo a continuación... .
1. Método de consulta:
Baidu proporciona consultas sobre las condiciones climáticas según la latitud y el nombre de la ciudad
2. :
3. Descripción del parámetro de interfaz:
4. Descripción del resultado devuelto:
5. p>
$city ?=?'Shanghai';?
//¿Codificar la cadena en formato json?
$arr?=json_decode($str,TRUE); ?
print_r($atr);?//Nombre de la ciudad
$city = 'Shanghai'
//Obtener datos en formato json
$ str =file_get_contents("/telematics/v3/weather?location=".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");
//Codifica la cadena en formato json p>
$arr =json_decode($str,TRUE); ?
print_r($atr);
6. >
[plain] ¿ver copia simple imprimir?
?
¿Matriz?
(?< / p>
[error]?=>?0?
[estado]?=>?éxito?
[fecha]?=>?2014-03-17
[resultados]?=>?Matriz?
(?
[0]?=>?Matriz?
( ?
[Ciudad actual]=>?Shanghái?
[weather_data]=>?Array?
(?
[0] = >>?Matriz?
(?
[fecha]?=>?Lunes (hoy,?tiempo real: 19 ℃)?
[dayPictureUrl] ?= >/images/weather/day/qing.png?
[nightPictureUrl]?=>/images/weather/night/qing.png?
[clima]?= >? ¿Soleado?
[viento]?=>?¿Nivel de viento del suroeste 3-4?
[temperatura]?=>?13℃?
) ?
[1]?=>?Array?
(?
[fecha]=>?Martes?
[díaPictureUrl ]? =>/images/weather/day/duoyun.png?
[nightPictureUrl]?=>?/images/weather/night/yin.png?
[clima] => ?Nublado a cubierto?
>[viento]=>?¿Nivel de viento del noreste 3-4?
[temperatura]?=>?24?~?9℃?
)?
[2]?=>?Array?
(?
[fecha]=>?Miércoles?
[díaPictureUrl]?=>/images/ Weather/day/zhongyu.png?
[nightPictureUrl]?=>?/images/weather/night/xiaoyu.png?
[weather]=>?Lluvia moderada que pasa a ¿lluvia ligera?
[viento]=>?¿Nivel de viento del noreste 3-4?
[temperatura]?=>?15?~?8℃?
) ?
[3]?=>?Array?
(?
[fecha]=>?Jueves?
[ dayPictureUrl]?=>/images/weather/day/duoyun.png?
[nightPictureUrl]?=>/images/weather/night/qing.png?
[clima ] =>?¿Nublado a soleado?
[viento]=>?¿Nivel de viento del norte 3-4?
[temperatura]?=>?14?~?6℃?< / p>
)?
)?
)?
)?
)?
Matriz
(
[error] => 0
[estado] => éxito
[fecha] => 2014-03-17
[resultados] => Matriz
(
[0] => Matriz
(
[ciudadactual]=> Shanghái
[weather_data]=> Matriz
(
[0]= > Array
(
? [fecha] => Lunes (hoy, tiempo real: 19℃)
? [dayPictureUrl] =>/images/weather /día /qing.png
? [nightPictureUrl] =>/images/weather/night/qing.png
[clima] => Soleado
? [viento] => Nivel de viento del suroeste 3-4
[temperatura] => 13 ℃
)
[1] => Matriz
(
[fecha]=> Martes
? [dayPictureUrl] =>/images/weather/day/duoyun.png
? [nightPictureUrl] => /images/weather/night/yin.png
[weather]=> Nublado a nublado
[viento]=> Nivel de viento del noreste 3-4
? [temperatura] => 24 ~ 9 ℃
)
[2] => Matriz
(
[fecha]=> miércoles
? [dayPictureUrl] =>/images/weather/day/zhongyu.png
? [nightPictureUrl] = > /images/weather/night/xiaoyu.png
[weather]=> Lluvia moderada que se convierte en lluvia ligera
[viento]=> Viento del noreste nivel 3-4
? [temperatura] => 15 ~ 8 ℃
)
[3] => Matriz
(
[fecha]=> jueves
? [dayPictureUrl] =>/images/weather/day/duoyun.png
[nightPictureUrl] =>/images/weather/night/qing. png
[clima]=> Nublado a soleado
[viento]=> Nivel de viento del norte 3-4
[temperatura] => 14 ~ 6 ℃
)
)
)
)
<p>)
7. PHP viene con funciones integradas para procesar cadenas en formato json. Hagamos un ejemplo y proporcionemos el código completo:
[php] ¿ver copia simple imprimir?
//Nombre de la ciudad?
$ ciudad? =?'Shanghai';?
//¿Obtener datos en formato json?
$str?=?file_get_contents("/telematics/v3/weather?location=". $ciudad ."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");?
//¿Codificar la cadena en formato json?
$arr?=?json_decode($str,TRUE) ;? p>
echo?"Ciudad:".$arr['resultados'][0]['CiudadActual']."?Fecha: ".$arr['fecha']."
";?
foreach($arr['results'][0]['weather_data']as?$val)?
{?
echo?$val['tiempo']."
";?
echo?"Tiempo: {$val['tiempo']}
" ;? p>
echo?"Dirección del viento: {$val['wind']}
";?
echo?"Temperatura: {$val['temperature'] }
";?
}? >>
//Ciudad name
$city = 'Shanghai';
//Obtener datos en formato json
$str = file_get_contents("/telematics/v3/ weather?location =".$city."&output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ");
//Codifica la cadena en formato json
$arr = json_decode($str, TRUE); ?
echo "Ciudad:".$arr['resultados'][0]['CiudadActual']." Fecha: ".$arr['fecha']."
";
foreach($arr['resultados'][0]['weather_data']as $val)
{
echo $val[' tiempo']."
";
echo "Tiempo: {$val['weather']}
";
echo "Dirección del viento: { $val['viento']}
";
echo "Temperatura: {$val['temperature']}
";
}
8. El contenido devuelto es el siguiente: