如果想要在自己開發的Xoops模組中播放youtube影音,就必須解出youtube影片網址串後面的ID才行,然後套入到iframe中,youtube影片網址目前有兩種格式
1、瀏覽器網址有?v=變數值,像是https://www.youtube.com/watch?v=yeWbbzDDNAc 紅字即為影片ID
2、播放器滑鼠右鍵->複製影片網址,沒有?v=變數值,像是https://youtu.be/yeWbbzDDNAc 紅字即為影片ID
所以function必須兩種格式網址都要能解出影片ID,以下為CODE部分
//youtube取得網址ID function
function youtubeurl($url=""){
//解析youtube網址?v值
//網址類型:https://www.youtube.com/watch?v=zIE8htt4HLg
$urlarr=parse_url($url);
parse_str($urlarr['query'],$parr);
$vid=$parr['v'];
//解析複製網址後ID值
//網址類型:https://youtu.be/SfPeulcfbSI
if(empty($vid)) $vid=end(preg_split("/\//",reset(preg_split("/\?/",$url))));
return $vid;
}
使用範例
$url="https://www.youtube.com/watch?v=yeWbbzDDNAc";或是
$url="https://youtu.be/yeWbbzDDNAc";
以上兩種格式都能解
echo $youtubbox="<iframe width='950' height='534' src='https://www.youtube.com/embed/".youtubeurl($url)."' title='YouTube video player' frameborder='0' allow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture' allowfullscreen></iframe>";
這樣就能用iframe播放youtube影片,當然正常不會這樣使用,因該先吧youtube影片url用youtubeurl($url)解出id後存入資料表,在於頁面中讀出資料表id後套入iframe,以上是方便大家測試用範例。
留言
張貼留言