PHP YouTube videoları embed nasıl?

12 Cevap php

Herkes bana sadece URL veya Embed kodu varsa nasıl show veya bir YouTube video embed bir fikir verebilir misiniz?

12 Cevap

Sen youtube video 11 karakter kodunu saklamak için kullanıcılara sormak gerekir.

Için, örneğin http://www.youtube.com/watch?v=Ahg6qcgoay4

Onbir karakter kodu: Ahg6qcgoay4

Daha sonra bu kodu almak ve veri tabanına yerleştirecek. Sayfanızda youtube video yerleştirmek istediğiniz yere, sonra veritabanından karakter yüklemek ve aşağıdaki kodu koyun: -

örneğin Ahg6qcgoay4 için olacak:

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

Veritabanındaki embed kodu tutmayın - YouTube zaman zaman embed kodu ve URL parametreleri değişebilir. Örneğin <object> embed kodu <iframe> embed kodu lehine emekli olmuştur. Sen (düzenli ifadeler, URL ayrıştırma fonksiyonları veya HTML çözümleyici kullanarak) URL / embed kodu video kimliğini ayrıştırmak ve saklamalısınız. Sonra şu anda YouTube API tarafından sunulan her türlü mekanizma kullanarak görüntüler.

Ben bu kimlikleri ile ne yapacağını anlamak için bu makaleleri bakmak öneririm:

Aşağıdaki gibi video kimliği ayıklanması için bir naif PHP örnek:

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

Kendi YouTube video oynatıcı oluşturmak için:

Uzun hem de kısa youtube URL'ler itibaren embed bu şekilde alabilirsiniz:

$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>";

Birine umut olur

watch?v= sonra "video id" ayıklamak için bir regex kullanın

Bir değişken video kimliği saklamak, bunu değişken diyelim vid

Rastgele bir video embed kodu alın, embed kodu video kimliği kaldırmak ve vid Elindeki ile değiştirin.

Ben php regex nasıl başa bilmiyorum, ama çok zor olmamalı

İşte python örnek kod:

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

Düzenli ifade v\=([\-\w]+) sonra gelir karakterler ve tire bir (alt) dizesini yakalar v=

Eğer programlama video yüklemek istiyorsanız, YouTube Data API PHP için kontrol edin

Burada otomatik olarak bağlantıya çevrilir URL açmak ve otomatik olarak youtube herhangi bir video adresler gömmek için yazmıştım bazı kodudur. Ben üzerinde çalışıyorum bir sohbet odası için yapılmış ve oldukça iyi çalışıyor. Ben de örneğin bir blog gibi başka herhangi bir amaç için sadece iyi çalışacaktır eminim.

Yapmanız gereken tek işlevi "Otomatik Bağlantı ()" diyoruz ve bunu ayrıştırılması dize geçmektedir.

Örneğin aşağıdaki fonksiyon içerir ve daha sonra bu kodu echo.

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

?>

`

Bu aynı konu için arama ben Javascript bir Youtube API kullanarak başka bir yöntem bulundu

Doğrudan gelen: http://code.google.com/apis/ajax/playground/#simple_embed

API yükleniyor

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

Ve aşağıdaki javascript kodu çalıştırarak:

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

Tam bir örnek, daha önce de ifade sayfa olan http://code.google.com/apis/ajax/playground

Burada youtube video embed için izin veren bir işlevdir

http://bitonwire.com/jblogs/youtube-embed-code-with-php

, luvboy

I açıkça anlamak, kullanıcı URL / Youtube video kodunu ve daha sonra bu video sayfasında görüntülenir sağlar.

Bunun için, sadece. Düzen vs ile, youtube Kopya video embed kodu basit bir sayfa yazmak ve sayfanıza yapıştırın. Bazı alan ile embed kodu değiştirin, VideoID söylüyorlar. Lütfen kullanıcı tarafından sağlanan kod bu VideoId ayarlayın.

edit: Alec Smart tarafından cevaba bakınız.

U sadece Embed kodu kopyalayıp yapıştırmak için kullanıcılara sormak sonra., Varchat tarih için bir php giriş formu oluşturmak 300 Diyelim ki o bir varchar uzunluğu verebilir., U kaydı görüntülemek zaman, u duraksız video görmek olacaktır.

Alec Smart cevabı için sadece bir küçük güncelleme: AS2 artık önerilmemektedir beri, '? = 3 versiyonu' çalışmak için onun örneğini almak için gereklidir. Ayrıntılar için "oynamak için seçilmesi içerik" altında YouTube Embedded Players and Player Parameters de Youtube başvuru bakın.

Başka bir deyişle:

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

(Muhtemelen henüz nesne etiketini desteklemeyen tarayıcılar için son çare olarak kullanılan iç embed) aşağıdaki gibi Görünüşe göre, Youtube referans yukarıdaki yapar:

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

Veya (sitenizin etki ile http://example.com olarak değiştirin) iframe kullanarak:

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

Bu YouTube embed generator Video gömülmesi ile tüm sorunları çözecektir.