嵌入 youtube "Shorts" 个视频
Embed youtube "Shorts" videos
我有这段代码,它工作得很好。
if( strcasecmp( 'www.youtube.com/watch', $link[2] ) == 0 && $this->params( $params, $link[3], 'v' ) )
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$params['v'].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
else if( preg_match( '/^(?:www\.)?youtu\.be\/([^\/]+)/i', $link[2], $matches ))
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
它工作得很好,自动用视频替换 links。但是现在,youtube 有这样的东西,其中短视频有 link 和“短裤”
示例:https://youtube.com/shorts/d1wXX9xO_2o?feature=share
那不会自动嵌入。知道如何解决这个问题吗?
我试过:
else if( preg_match( '/^(?:www\.)?youtube\.com/shorts\/([^\/]+)/i', $link[2], $matches ))
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
但运气不好。
这有效。
else if( preg_match( '/youtube\.com\/shorts\/(\w+\s*\/?)*([0-9]+)*$/i', $link[2], $matches ) )
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
您不需要为短裤使用不同的代码,只需使用其 url 末尾的标识符和此 iframe:
<iframe
width="720"
height="576"
src="{{'https://www.youtube.com/embed/' . $video}}"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
经过测试,非常适合我。
我有这段代码,它工作得很好。
if( strcasecmp( 'www.youtube.com/watch', $link[2] ) == 0 && $this->params( $params, $link[3], 'v' ) )
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$params['v'].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
else if( preg_match( '/^(?:www\.)?youtu\.be\/([^\/]+)/i', $link[2], $matches ))
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
它工作得很好,自动用视频替换 links。但是现在,youtube 有这样的东西,其中短视频有 link 和“短裤”
示例:https://youtube.com/shorts/d1wXX9xO_2o?feature=share
那不会自动嵌入。知道如何解决这个问题吗?
我试过:
else if( preg_match( '/^(?:www\.)?youtube\.com/shorts\/([^\/]+)/i', $link[2], $matches ))
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
但运气不好。
这有效。
else if( preg_match( '/youtube\.com\/shorts\/(\w+\s*\/?)*([0-9]+)*$/i', $link[2], $matches ) )
return '<iframe width="'.$width.'" height="'.$height.'" src="'.$link[1].'www.youtube.com/embed/'.$matches[1].'?rel=0&playsinline=1&controls=1&showinfo=0&modestbranding=0" frameborder="0" allowfullscreen></iframe>';
您不需要为短裤使用不同的代码,只需使用其 url 末尾的标识符和此 iframe:
<iframe
width="720"
height="576"
src="{{'https://www.youtube.com/embed/' . $video}}"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>
经过测试,非常适合我。