Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

2017-10-17

One of the strangest objects in the outer Solar System has recently been found to have a ring. The object, named Haumea, is the fifth designated dwarf planet after Pluto, Ceres, Eris, and Makemake. Haumea's oblong shape makes it quite unusual. Along one direction, Haumea is significantly longer than Pluto, while in another direction Haumea has an extent very similar to Pluto, while in the third direction is much smaller. Haumea's orbit sometimes brings it closer to the Sun than Pluto, but usually Haumea is further away. Illustrated above, an artist visualizes Haumea as a cratered ellipsoid surrounded by a uniform ring. Originally discovered in 2003 and given the temporary designation of 2003 EL61, Haumea was renamed in 2008 by the IAU for a Hawaiian goddess. Besides the ring discovered this year, Haumea has two small moons discovered in 2005, named Hi'iaka and Namaka for daughters of the goddess.

Astronomy Picture of the Day на вашем сайте. Продолжение

Продолжаем усовершенствовать код, предназначенный для получения актуальной астрономической "картинки дня" с сайта NASA; начало см. в статье Astronomy Picture of the Day на вашем сайте. Работая с API Astronomy Picture of the Day, внезапно мы с вами осознаем, что с сервера NASA может транслироваться вовсе не линк на изображение, а... ссылка на ролик Youtube, и наш с вами код обязан это учитывать. Можно, разумеется, ограничиться проверкой на наличие изображения в полученном JSON, и в случае отсутствия такового - рандомно показать одну из заранее заготовленных картинок; но мы ведь не ищем легких путей, не правда ли?

 

 

Прежде всего, хотелось бы извлечь из полученной ссылки Youtube - идентификатор видео, как это сделать? С этим вполне справляется следующее регулярное выражение:

 

preg_match('#(\.be/|/embed/|/v/|/watch\?v=)([A-Za-z0-9_-]{5,11})#', $YoutubeCode, $matches);
if(isset($matches[2]) && $matches[2] != ''){
$YoutubeCode = $matches[2];
}

 

, и теперь ID видео находится у нас в переменной $YoutubeCode. Отлично, полдела сделано; публикация ролика уже не вызывает никаких затруднений:

 

echo '<iframe src="https://www.youtube.com/embed/' . $YoutubeCode . '" type="text/html" width="640" height="360" frameborder="0"></iframe>';

 

Идем далее. Как проверить, содержит ли полученный JSON ссылку на изображение? Вариантов подобной проверки немало; в частности, fopen, этот способ описан на форуме, в топике, посвященном Extended weather informer. Wunderground.com, взгляните:

 

} elseif (!@fopen($obj->url, 'r')) {
$best_images = Array(

 

Ну и вот, приходим наконец к коду, который полностью показан, как всегда, на форуме; демка в начале страницы. Данный API, как уже отмечалось, имеет ярко выраженную тенденцию к перманентному изменению, поэтому... поэтому разговор, безусловно, не закончен. Заходите на огонек.

Оставить комментарий

Добавьте ваш комментарий