문제

누구든지 우리가 어떻게 할 수 있는지 아이디어를 줄 수 있습니까? 보여 주다 아니면 URL 또는 임베드 코드가있는 경우 YouTube 비디오를 포함 시켰습니까?

도움이 되었습니까?

해결책

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>

다른 팁

INVED 코드를 데이터베이스에 저장하지 마십시오. YouTube는 임베드 코드 및 URL 매개 변수를 때때로 변경할 수 있습니다. 예를 들어 <object> Embed Code는 은퇴했습니다 <iframe> 포함 코드. URL/Embed 코드 (일반 표현식, 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 YouTube 비디오, 사용하는 것이 바람직하다 <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], 이것들은 일치합니다 :

이 답변의 일부는 @Shawn의 답변에 의해 언급됩니다. 이 질문.

REGEX를 사용하여 "비디오 ID"를 추출하십시오. watch?v=

비디오 ID를 변수로 저장 하고이 변수라고 부릅니다. vid

임의의 비디오에서 임베드 코드를 가져 와서 임베드 코드에서 비디오 ID를 제거하고 이로 바꾸십시오. vid 당신은 얻었습니다.

PHP에서 Regex를 다루는 방법을 모르겠지만 너무 어렵지 않아야합니다.

파이썬의 예제 코드는 다음과 같습니다.

>>> 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);
 }

?>

`

프로그래밍 방식으로 비디오를 업로드하려면 YouTube 데이터 API ~을 위한 PHP

이 같은 주제를 검색하면 JavaScript를 사용하여 YouTube API의 다른 방법을 찾았습니다.

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

API로드

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

다음 JavaScript 코드 실행 :

  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);

전체 샘플은 이전에 참조 된 페이지에 있습니다 http://code.google.com/apis/ajax/playground

Joomla 로이 간단하게 할 수 있습니다. 샘플 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"/>

단순히 PHP 입력 양식을 만들 수 있습니다 Varchar date, 그것을 줘 varchar 300으로 말하면 사용자에게 임베드 코드를 복사하여 붙여 넣으십시오. 레코드를 볼 때 스트리밍 된 비디오를 보게됩니다.

luvboy,

명확하게 이해하면 사용자는 YouTube 비디오의 URL/코드를 제공 한 다음 해당 비디오가 페이지에 표시됩니다.

이를 위해 레이아웃 등이있는 간단한 페이지를 작성하십시오. YouTube에서 비디오 임베드 코드를 복사하여 페이지에 붙여 넣으십시오. 임베드 코드를 일부 필드로 바꾸십시오. 이 videoid를 사용자가 제공 한 코드로 설정하십시오.

편집 : Alec Smart의 답변을 참조하십시오.

Alec Smart의 답변에 대한 작은 업데이트 : AS2가 현재 더 이상 사용되지 않으므로 '? 버전 = 3'은 예제를 작동 시키려면 필요합니다. YouTube 참조를 참조하십시오 YouTube 내장 플레이어 및 플레이어 매개 변수 자세한 내용은 "컨텐츠 선택"아래에 있습니다.

다시 말해:

<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>

분명히 위의 YouTube 참조는 다음과 같이이를 수행합니다 (내부 임베드는 아마도 객체 태그를 아직 지원하지 않는 브라우저의 낙하로 사용) :

<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>

또는 iframes를 사용합니다 (교체 http://example.com 사이트 도메인과 함께) :

<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"/>

이것 YouTube Imbed Generator 비디오 임베딩에 대한 모든 문제를 해결하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top