php 将Youtube或Vimeo网址转换为iframe

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 将Youtube或Vimeo网址转换为iframe相关的知识,希望对你有一定的参考价值。

<?php

function get_video_by_url($url, $params = null)
{
  if (!is_string($url)) return false;

  $regexVM = '~
    # Match Vimeo link and embed code
    (?:<iframe [^>]*src=")?         # If iframe match up to first quote of src
    (?:                             # Group vimeo url
      https?:\/\/             # Either http or https
      (?:[\w]+\.)*            # Optional subdomains
      vimeo\.com              # Match vimeo.com
      (?:[\/\w]*\/videos?)?   # Optional video sub directory this handles groups links also
      \/                      # Slash before Id
      ([0-9]+)                # $1: VIDEO_ID is numeric
      [^\s]*                  # Not a space
    )                               # End group
    "?                              # Match end quote if part of src
    (?:[^>]*></iframe>)?            # Match the end of the iframe
    (?:<p>.*</p>)?                  # Match any title information stuff
    ~ix';
  $regExpYt = '~
  ^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*
  ~ix';

  preg_match($regexVM, $url, $matches);
  if (isset($matches[1]) && is_array($params) && isset($params['img']) && $params['img']) {
    return '<a href="' . $url . '"' . (isset($params['class']) ? ' class="popup-vimeo ' . $params['class'] . '"' : '') . '><img src="" data-vmid="' . $matches[1] . '" alt=""></a>';
  } else if (isset($matches[1])) {
    return '<iframe class="video" src="https://player.vimeo.com/video/' . $matches[1] . '" width="500" height="449" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
  }
  preg_match($regExpYt, $url, $matches);
  if (isset($matches[7]) && is_array($params) && isset($params['img']) && $params['img']) {
        return '<a href="' . $url . '"' . (isset($params['class']) ? ' class="popup-youtube ' . $params['class'] . '"' : '') . '><img src="http://img.youtube.com/vi/' . $matches[7] . '/hqdefault.jpg" alt=""></a>';
  } else if (isset($matches[7])) {
    return '<iframe class="video" width="500" height="449" src="https://www.youtube.com/embed/' . $matches[7] . '" allowfullscreen></iframe>';
  }
  return false;

}

以上是关于php 将Youtube或Vimeo网址转换为iframe的主要内容,如果未能解决你的问题,请参考以下文章

php 将YouTube网址转换为嵌入网址

php Youtube或Vimeo嵌入

YouTube Vimeo 视频 ID 来自嵌入代码或来自带有 PHP 正则表达式 RegEx 的 URL

使用自定义字段从 Youtube 或 Vimeo 嵌入背景视频

如何使用 php 获取 youtube 和 vimeo 嵌入代码的视频缩略图?

Azure 媒体播放器与 Youtube 和 Vimeo 的集成