php - 如何从此网址中提取 YouTube ID

标签 php regex youtube

如何从此网址中提取 YouTube ID?

https%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253Dnn5hCEMyE-E

我试过这个正则表达式:

$url = $_GET["q"];
preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);

最佳答案

首先解码它并使用数组匹配的第二个索引([1]):

if(isset($_GET["q"]))
{
    $url = urldecode(rawurldecode($_GET["q"]));
    # https://www.youtube.com/watch?v=nn5hCEMyE-E
    preg_match("/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches);
    echo $matches[1];
    # nn5hCEMyE-E
}

关于php - 如何从此网址中提取 YouTube ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37186181/

相关文章:

javascript - 添加选项以增加 YouTube 视频的低音

facebook - Adobe Premiere Pro H.264视频导出-YouTube上传-Facebook嵌入-黑色条形

javascript - 在悬停/鼠标悬停时启动 youtube 视频

javascript - myModal 表单在一页上打开,但是当使用相同的 id 时,它不会从主页打开

php - 通过多个函数运行一个变量

javascript - 将一个页面中创建的表发送到另一页面

javascript - 正则表达式从地址字符串中提取英国邮政编码的一部分

java - 用于替换 ';' 之后的所有换行符的正则表达式

ruby - 如何使用 Ruby 1.9 检测字符串是否仅包含拉丁符号?

javascript - 更改 DIV 的 CSS 和内容