IT Share you

PHP에 YouTube 동영상을 삽입하는 방법은 무엇입니까?

shareyou 2020. 12. 13. 11:24
반응형

PHP에 YouTube 동영상을 삽입하는 방법은 무엇입니까?


URL이나 Embed 코드 만 있으면 YouTube 동영상을 표시 하거나 삽입 할 수있는 방법을 알려 주실 수 있습니까 ?


사용자에게 유튜브 영상의 11 자 코드를 저장하도록 요청해야합니다.

예 : http://www.youtube.com/watch?v=Ahg6qcgoay4

11 자 코드 : Ahg6qcgoay4

그런 다음이 코드를 가져 와서 데이터베이스에 배치합니다. 그런 다음 페이지에 YouTube 비디오를 배치하려는 경우 데이터베이스에서 캐릭터를로드하고 다음 코드를 입력합니다.

예를 들어 Ahg6qcgoay4의 경우 다음과 같습니다.

<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4" /></object>

데이터베이스에 소스 코드를 저장하지 마십시오 .YouTube는 때때로 소스 코드와 URL 매개 변수를 변경할 수 있습니다. 예를 들어, <object>내장 코드는 내장 코드를 위해 폐기되었습니다 <iframe>. URL / 임베드 코드 (정규 표현식, URL 구문 분석 함수 또는 HTML 구문 분석기 사용)에서 비디오 ID를 구문 분석하여 저장해야합니다. 그런 다음 현재 YouTube API에서 제공하는 메커니즘을 사용하여 표시합니다.

비디오 ID를 추출하는 간단한 PHP 예제는 다음과 같습니다.

<?php
    preg_match(
        '/[\\?\\&]v=([^\\?\\&]+)/',
        'http://www.youtube.com/watch?v=OzHvVoUGTOM&feature=channel',
        $matches
    );
    // $matches[1] should contain the youtube id
?>

이러한 ID로 무엇을해야하는지 알아 내기 위해이 기사를 살펴 보는 것이 좋습니다.

나만의 YouTube 비디오 플레이어를 만들려면 :


길고 짧은 YouTube URL에서 다음과 같은 방법으로 삽입 할 수 있습니다.

$ytarray=explode("/", $videolink);
$ytendstring=end($ytarray);
$ytendarray=explode("?v=", $ytendstring);
$ytendstring=end($ytendarray);
$ytendarray=explode("&", $ytendstring);
$ytcode=$ytendarray[0];
echo "<iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe>";

누군가에게 도움이되기를 바랍니다.


<object><embed>태그에 따라되지 않습니다 HTML 유튜브 동영상 , 사용하는 것이 바람직하다 <iframe>이렇게 태그를.

<iframe width="420" height="315"
src="http://www.youtube.com/embed/XGSy3_Czz8k?autoplay=1">
</iframe>

사용자가 링크에서 동영상 ID를 찾아서 양식 필드에 넣는 데 평생을 소비하지 않으려면 YouTube에서 찾은 동영상의 링크를 게시하고 다음 정규식을 사용하여 동영상 ID를 얻을 수 있습니다. :

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

가져올 수있는 동영상 ID를 얻으려면 $matches[1]다음과 일치해야합니다.

이 답변의 일부는에서 @의 숀의 대답에 의해 언급 이 질문에 .


정규식을 사용하여 "동영상 ID"를 추출하십시오. watch?v=

비디오 ID를 변수에 저장하고이 변수를 호출하겠습니다. vid

임의의 비디오에서 임베드 코드를 가져오고 임베드 코드에서 비디오 ID를 제거하고 얻은 코드로 vid바꿉니다.

PHP에서 정규식을 처리하는 방법을 모르겠지만 너무 어렵지는 않습니다.

다음은 Python의 예제 코드입니다.

>>> ytlink = 'http://www.youtube.com/watch?v=7-dXUEbBz70'
>>> import re
>>> vid = re.findall( r'v\=([\-\w]+)', ytlink )[0]
>>> vid
'7-dXUEbBz70'
>>> print '''<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/%s&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/%s&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>''' % (vid,vid)
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7-dXUEbBz70&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
>>>

정규식 v\=([\-\w]+)은 다음 문자와 대시의 (하위) 문자열을 캡처합니다.v=


다음은 URL을 자동으로 링크로 바꾸고 YouTube의 동영상 URL을 자동으로 삽입하기 위해 작성한 코드입니다. 작업중인 채팅방으로 만들었는데 꽤 잘 작동합니다. 예를 들어 블로그처럼 다른 목적으로도 잘 작동 할 것이라고 확신합니다.

"autolink ()"함수를 호출하고 구문 분석 할 문자열을 전달하기 만하면됩니다.

예를 들어 아래 함수를 포함하고이 코드를 에코합니다.

`
echo '<div id="chat_message">'.autolink($string).'</div>';

/****************Function to include****************/

<?php

function autolink($string){
    // force http: on www.
    $string = str_ireplace( "www.", "http://www.", $string );
    // eliminate duplicates after force
    $string = str_ireplace( "http://http://www.", "http://www.", $string );
    $string = str_ireplace( "https://http://www.", "https://www.", $string );

    // The Regular Expression filter
    $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    // Check if there is a url in the text

$m = preg_match_all($reg_exUrl, $string, $match); 

if ($m) { 
$links=$match[0]; 
for ($j=0;$j<$m;$j++) { 

    if(substr($links[$j], 0, 18) == 'http://www.youtube'){

    $string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string).'<br /><iframe title="YouTube video player" class="youtube-player" type="text/html" width="320" height="185" src="http://www.youtube.com/embed/'.substr($links[$j], -11).'" frameborder="0" allowFullScreen></iframe><br />';


    }else{

    $string=str_replace($links[$j],'<a href="'.$links[$j].'" rel="nofollow" target="_blank">'.$links[$j].'</a>',$string);

        } 

    } 
} 




               return ($string);
 }

?>

`


프로그래밍 방식으로 동영상을 업로드하려면 PHPYouTube 데이터 API확인 하세요.


이 동일한 주제를 검색하면서 Javascript 및 Youtube API를 사용하는 다른 방법을 찾았습니다.

직접 출처 : http://code.google.com/apis/ajax/playground/#simple_embed

API로드

<script src="http://www.google.com/jsapi" type="text/javascript"></script>

그리고 다음 자바 스크립트 코드를 실행합니다.

  google.load("swfobject", "2.1");
  function _run() {

    var videoID = "ylLzyHk54Z0"
    var params = { allowScriptAccess: "always" };
    var atts = { id: "ytPlayer" };
    // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
    swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1",
                       "videoDiv", "480", "295", "8", null, null, params, atts);


  }
  google.setOnLoadCallback(_run);

The complete sample is in the previously referred page http://code.google.com/apis/ajax/playground


You can do this simple with Joomla. Let me assume a sample YouTube URL - https://www.youtube.com/watch?v=ndmXkyohT1M

<?php 
$youtubeUrl =  JUri::getInstance('https://www.youtube.com/watch?v=ndmXkyohT1M');
$videoId = $youtubeUrl->getVar('v'); ?>

<iframe id="ytplayer" type="text/html" width="640" height="390"  src="http://www.youtube.com/embed/<?php echo $videoId; ?>"  frameborder="0"/>

You can simply create a php input form for Varchar date,give it a varchar length of lets say 300. Then ask the users to copy and paste the Embed code.When you view the records, you will view the streamed video.


luvboy,

If i understand clearly, user provides the URL/code of the Youtube video and then that video is displayed on the page.

For that, just write a simple page, with layout etc.. Copy video embed code from youtube and paste it in your page. Replace embed code with some field, say VideoID. Set this VideoId to code provided by your user.

edit: see answer by Alec Smart.


Just a small update to Alec Smart's answer: since AS2 is deprecated now, the '?version=3' is required to get his example to work. See the Youtube reference at YouTube Embedded Players and Player Parameters under "Selecting content to play" for details.

In other words:

<object width="425" height="350" data="http://www.youtube.com/v/Ahg6qcgoay4?version=3" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/Ahg6qcgoay4?version=3" /></object>

Apparently, the Youtube reference above does this as follows (the inner embed presumably used as a fallback for browsers that don't yet support the object tag):

<object width="640" height="390">
  <param name="movie"
         value="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"></param>
  <param name="allowScriptAccess" value="always"></param>
  <embed src="https://www.youtube.com/v/u1zgFlCw8Aw?version=3&autoplay=1"
         type="application/x-shockwave-flash"
         allowscriptaccess="always"
         width="640" height="390"></embed>
</object>

Or using iframes (replace http://example.com with your site's domain):

<iframe id="ytplayer" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/u1zgFlCw8Aw?autoplay=1&origin=http://example.com" frameborder="0"/>

This YouTube embed generator solve all my problems with video embedding.

참고URL : https://stackoverflow.com/questions/412467/how-to-embed-youtube-videos-in-php

반응형