Fetching information from external websites can be done via file_get_contents if allow_url_fopen directive is enabled, or by using curl or sockets to send a new request remote.
You can also perform sunrise/sunset commands if you know the latitude and longitude of where you are looking for. If its always the same place hardcoded, than you can manually provide these. User based takes more work since I don't believe any PHP extension includes approximate latitude / longitude, but the client side JS may be able to coerce the browser to reveal it.
Once you have a valid latitude and longitude, PHP can use the date_sun_info function available since 5.1.2. This gives you a lot of information including sunrise, sunset and transit (ie: "noon"). So I'm not exactly sure what you want to do with the transition periods, but they can all be calculated based off of the sunrise, sunset, transit. Pretty sure the transit is the time for the sun's zenith.
If you give it a specific lat/long, then that would be the best approach. You can use date add/sub/diff functionality to determine which step you are between them.
Also, if you really want to use an external site, I would suggest looking for a soap server on the site itself. Weather sites often have soap services enabled so it makes implementation near flawless. You would establish a soap connection to them, and call functions from their api just as if they were your own. So if they had one to get sun phases, it may be along the lines of
$soapClient->getSunPhases($lat, $long); for example. The site you have provided definitely has an api, but I haven't looked into what it actually provides.
header('HTTP/1.1 420 Enhance Your Calm');