Sign in

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

2018-02-18

Stars can make waves in the Orion Nebula's sea of gas and dust. This esthetic close-up of cosmic clouds and stellar winds features LL Orionis, interacting with the Orion Nebula flow. Adrift in Orion's stellar nursery and still in its formative years, variable star LL Orionis produces a wind more energetic than the wind from our own middle-aged Sun. As the fast stellar wind runs into slow moving gas a shock front is formed, analogous to the bow wave of a boat moving through water or a plane traveling at supersonic speed. The small, arcing, graceful structure just above and left of center is LL Ori's cosmic bow shock, measuring about half a light-year across. The slower gas is flowing away from the Orion Nebula's hot central star cluster, the Trapezium, located off the upper left corner of the picture. In three dimensions, LL Ori's wrap-around shock front is shaped like a bowl that appears brightest when viewed along the "bottom" edge. This beautiful painting-like photograph is part of a large mosaic view of the complex stellar nursery in Orion, filled with a myriad of fluid shapes associated with star formation.

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, как уже отмечалось, имеет ярко выраженную тенденцию к перманентному изменению, поэтому... поэтому разговор, безусловно, не закончен. Заходите на огонек.

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

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