How to use OpenWeatherMap API with PHP
OpenWeatherMap API with PHP
In this tutorial, we are going to discuss a useful API from openweathermap.org. Its API can be used to display Current weather and 13-day Forecast data.
It displays the following data:
- Minimum Temperature
- Maximum Temperature
- Wind Speed
- Humidity Value
- Weather Conditions and other details.
Using PHP to Develop your own weather checking website :
Step 1 – Go to Openweathermap.org and register to get your free or paid API key (app_id).
Step 2 – Create a PHP file and write HTML code for a Simple Form.
<form method=”post”>
<label for=”city”>
Enter Location Name :
</label>
<input class=”form-control” id=”searchTextField” name=”city” placeholder=”Enter a location” autocomplete=”on”>
<!–<label for=”cc”>
Country Code (Eg: IN for India):
</label>
<input class=”form-control” name=”cc”>–>
<button class=”btn btn-success” type=”submit” name=”sub”>View</button>
</form>
Using the form given above users will enter the name of their city.
Step – 3 Write the following php code:
<?php
if (isset($_POST[‘sub’])){
$city = $_POST[‘city’];
$country = $_POST[‘cc’];
$url=”http://api.openweathermap.org/data/2.5/weather?q=”.$city.”,”.$country.”&units=metric&cnt=7&lang=en&appid={Your-APi-key}”;
//Replace your API key with your key.
//When user will submit the query, $_POST variable will be set and you have supply these variable in the url.
//The above given url produced JSON output. Now write:
$json=file_get_contents($url);
$data=json_decode($json,true);
echo “<h2>Current Temperature in ” . $city . ” is :<button class=’btn btn-success’>” . $data[‘main’][‘temp’] . “° Celcius</button></h2>”;
echo “<h2>Wind Speed is :<u>” . $data[‘wind’][‘speed’] . “</u> KMPH</h2>”;
echo “<h2>Humidity is :<u>” . $data[‘main’][‘humidity’] . “</u> %</h2>”;
echo “<h2>Weather condition:<u>” . $data[‘weather’][0][‘main’] . “</u>”;
echo “<img src=’http://openweathermap.org/img/w/” .$data[‘weather’][0][‘icon’]. “.png’ width=’90’ height=’90’></h2>”;
?>
You will see a form and when you will enter name of any city in the Input field and hit enter your application will get the data from following JSON:
In this example, we have checked our URL with “Lucknow”.
This is a pretty JSON output:
{
"coord": {
"lon": 80.92,
"lat": 26.85
},
"weather": [
{
"id": 721,
"main": "Haze",
"description": "haze",
"icon": "50d"
}
],
"base": "stations",
"main": {
"temp": 40,
"pressure": 1005,
"humidity": 16,
"temp_min": 40,
"temp_max": 40
},
"visibility": 3000,
"wind": {
"speed": 1
},
"clouds": {
"all": 0
},
"dt": 1492077600,
"sys": {
"type": 1,
"id": 7817,
"message": 0.0125,
"country": "IN",
"sunrise": 1492042451,
"sunset": 1492088381
},
"id": 1264733,
"name": "Lucknow",
"cod": 200
}
You can see the Live Demo at this URL: http://weather.slidescope.com
