A straight-forward shipping forecast API written in pure PHP which scrapes up-to-date info from the BBC shipping forecast webpage.
Source based on Ted Nyman's shipping forecast project. Mega props to that guy! :)
composer install johnnymck/shippingforecast
use ShippingForecast\ShippingForecast;
$forecast = new ShippingForecast();
$cromarty = $forecast->get('Cromarty'); // location names must be capitalised
echo $cromarty['time']; // eg, 'The general synopsis at 1800'...
print_r($cromarty['content']['warning']); // returns array of warnings (often empty, though not in wintertime 😅)
echo $cromarty['content']['visibility']; // eg, 'Good, occasionally poor'...
It's worth noting that ShippingForecast::get($foo)
and ShippingForecast::getAll()
both yeild an assoc array containing ['time']
, the time as a string when last updated by the BBC, and ['content']
which contains the forecast-proper, including a ['warning']
array to yeild any prevalent warning information. See examples/
for further information.
Running php readforecast.php
in the root of the application and piping the output into a text-to-speech application (such as say
on Macintosh) will read the latest forecast update without you having to bother tuning your wireless sets to BBC R4, 3 times a day. What a time to be alive!
./forecast [Capitalised zone name here]
will return the forecast in plaintext in your desired zone