Задать вопрос

Как правильно составить регулярное выражение?

Здравствуйте. У меня есть регулярное выражение для преобразования ссылок (допустим, с ютуба) в плейер с видео. Но, как оказалось, регулярное выражение не определяет ссылки вида
//youtube.com, а остальные распознает, такие как
www.youtube.com, youtube.com, http://youtube.com, https://youtube.com, http://www.youtube.com и https://www.youtube.com

Помогите пожалуйста доработать регулярку для определения и //youtube.com таких ссылок.
$param = preg_replace('/(htt?ps?:\/\/|www\.)youtube\.com\/embed\/([a-zA-Z0-9_\-]+(.*))/i','<div style="max-width: 700px;">'.$mobileVideo.'<iframe src="https://www.youtube.com/embed/$2" '.$embed.' style="border-width:0px;" width="'.$maxwidth.'" height="'.$maxheight.'" allowfullscreen></iframe>'.$close.'</div>', $param);
  • Вопрос задан
  • 96 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
kores
@kores
Помог ответ? Отметь решением!
Нашел старый кусок кода у себя, попробуйте, может помочь:

// Получить ID от youtube
function get_youtube_id( $url ) {

    // Пустота
    $match = array();
    $youtube_id = '';

    // Регулярка
    preg_match('%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $url, $match);

    // Результат
    $youtube_id = $match[1];

    return $youtube_id;

}

$str = '//www.youtube.com/watch?v=SUaBq87nTVY';

echo get_youtube_id( $str );

// Выведет 'SUaBq87nTVY'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы