О web-разработке
и даже немного больше...

Вставка видео из youtube по ссылке (PHP)

vstavka-video-s-youtubeОдним из популярных видео-проектов в интернете на сегодняшний день является сайт youtube.com. В виду популярности проекта ссылки на видео могут быть использованы довольно часто и на других сайтах. К примеру, впролне обуздана возможность вставки видео с ютуба на других сайтах, с использованием iframe.

Рассмотрим пример, как можно автоматизировать этот процесс. Первоначально у нас будет ссылка на какое-либо видео. Мы же будет вставлять это видео на страницу, с использованием этой ссылки.

Суть в том, что нам нужно извлечь значение параметра «v» из ссылки, это и есть идентификатор видео. После этого остается лишь правильно вставить фрейм с ссылкой сформированной с помощью этого параметра.

Приступаем, для наглядности сделаем форму для вставки ссылки на видео:

<form method="post">
<input type="text" name="url" size="100"><br>
<input type="submit" name="send" value="Отправить">
</form>

Делаем обработчик формы:

if (isset($_POST['url']) &&
	filter_var($_POST['url'],FILTER_VALIDATE_URL,FILTER_FLAG_PATH_REQUIRED)){
	$videoID = getYoutubeVideoID($_POST['url']);
} else {
	$videoID = false;
}

Функция getYoutubeVideoID() извлекает идентификатор видео на ютюбе, и помещается в переменную $videoID.

Вставка iframe:

<?if ($videoID != false){?>
<iframe width="560" height="315" src="http://www.youtube.com/embed/<?=$videoID?>?autoplay=0" frameborder="0"></iframe>
<?}?>

Код функции getYoutubeVideoID():

// получение ID видео из URL
function getYoutubeVideoID($url){

	// допустимые доменые имена в ссылке
	$names = array('www.youtube.com','youtube.com');

	// разбор адреса
	$up = parse_url($url);

	// проверка параметров
	if (isset($up['host']) && in_array($up['host'],$names) &&
		isset($up['query']) && strpos($up['query'],'v=') !== false){

		// достаем параметр ID
		$lp = explode('v=',$url);

		// отсекаем лишние параметры
		$rp = explode('&',$lp[1]);

		// возвращаем строку, либо false
		return (!empty ($rp[0]) ? $rp[0] : false);
	}
	return false;
}

Ну и как полагается в конце: исходник и пример работы.

UPD: Добавляю альтернативный вариант реализации без использования PHP
В данном примере всё реализовано без использования PHP. В этом случае ссылка добавляется в элемент iframe посредством использования кода на JavaScript и библиотеки JQuery.
Не забудьте предварительно подключить библиотеку JQuery перед использованием кода примера.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

Форма для ввода ссылки, а так же сам элемент iframe:

<iframe width="560" height="315" src="" frameborder="0" id="video-frame"></iframe>
<form>
	<input type="text" id="ylink" placeholder="Укажите ссылку на ролик в YouTube">
	<input type="button" name="getlink" value="Вставить видео">
</form>

Обработчик события нажатия кнопки на форме:

	// реакция на событие клика по кнопке на форме
	$('input[name="getlink"]').on("click",function(){

		// проверяем наличие записи в поле ввода
		if ($("#ylink").val() != ''){
			
			// получаем строку из поля ввода, разбиваем её на части (от знака =)
			var url_obj = $("#ylink").val().split('=');
			
			// проверяем наличие нужной записи
			if (typeof url_obj == 'object' && '1' in url_obj){
				
				// формируем ссылку для iframe
				var link = 'http://www.youtube.com/embed/'+url_obj[1]+'?autoplay=0';
				
				// добавляем ссылку в атрибут src элемента iframe
				$("#video-frame").attr("src", link);
				
			} else {
				alert('Не удалось получить параметр ссылки');
			}
		}

	});
Опубликован: 31.07.2015 г.

См. также:

Редакторы кода для PHP
Как просмотреть время загрузки страницы в PHP?
Генерация QR-кода в PHP
Загрузка файлов на сервер посредством Ajax
Импорт записей из Excel в WordPress
Парсинг XML в PHP
Установка IonCube на XAMPP
Создание PDF файлов в PHP

Комментарии

  1. www100 пишет:

    Этот код выдаёт ошибку

    // реакция на событие клика по кнопке на форме
    Здесь ошибка---> $('input[name="getlink"]').on("click",function(){

    // проверяем наличие записи в поле ввода
    if ($("#ylink").val() != ''){

    // получаем строку из поля ввода, разбиваем её на части (от знака =)
    var url_obj = $("#ylink").val().split('=');

    // проверяем наличие нужной записи
    if (typeof url_obj == 'object' && '1' in url_obj){

    // формируем ссылку для iframe
    var link = 'http://www.youtube.com/embed/'+url_obj[1]+'?autoplay=0';

    // добавляем ссылку в атрибут src элемента iframe
    $("#video-frame").attr("src", link);

    } else {
    alert('Не удалось получить параметр ссылки');
    }
    }

    });

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта