chihung
5/12/2020 - 1:51 AM

get youtube id

/**
 * http://webdeveloperswall.com/php/get-youtube-video-id-from-url
 **/
 
 
 function extractUTubeVidId( $url ) {
    /*
    * type1: http://www.youtube.com/watch?v=9Jr6OtgiOIw
    * type2: http://www.youtube.com/watch?v=9Jr6OtgiOIw&feature=related
    * type3: http://youtu.be/9Jr6OtgiOIw
    */
    $vid_id = "";
    $flag   = false;
    if ( isset( $url ) && ! empty( $url ) ) {
        /*case1 and 2*/
        $parts = explode( "?", $url );
        if ( isset( $parts ) && ! empty( $parts ) && is_array( $parts ) && count( $parts ) > 1 ) {
            $params = explode( "&", $parts[1] );
            if ( isset( $params ) && ! empty( $params ) && is_array( $params ) ) {
                foreach ( $params as $param ) {
                    $kv = explode( "=", $param );
                    if ( isset( $kv ) && ! empty( $kv ) && is_array( $kv ) && count( $kv ) > 1 ) {
                        if ( $kv[0] == 'v' ) {
                            $vid_id = $kv[1];
                            $flag   = true;
                            break;
                        }
                    }
                }
            }
        }

        /*case 3*/
        if ( ! $flag ) {
            $needle = "youtu.be/";
            $pos    = null;
            $pos    = strpos( $url, $needle );
            if ( $pos !== false ) {
                $start  = $pos + strlen( $needle );
                $vid_id = substr( $url, $start, 11 );
                $flag   = true;
            }
        }
    }

    return $vid_id;
}
<div class="embed-responsive embed-responsive-16by9">
                        <?php
                        $yt_id= SCF::get( 'youtube_video_id' );
                        echo $youtube_video_id = extractUTubeVidId($yt_id);
                        ?>

                        <iframe class="embed-responsive-item" src="https://www.youtube.com/embed/<?php echo $youtube_video_id; ?>" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                    </div>