SORU
29 NİSAN 2011, Cuma


Nasıl bir dize bir düzenli ifade kullanarak tüm Youtube video kimliği bulmak için?

Kullanıcılar bir şey yazmak, bir metin var.

Örneğin:

Gereklilik haline gelmiştir sadece kukla metin. http://www.youtube.com/watch?v=DUQi_R4SgWo baskı ve dizgi Sanayi. Gereklilik haline gelmiştir olmuştur endüstri standart kukla metin hiç. ne zamandan beri 1500, bilinmeyen yazıcı tipi bir Kadırga aldı ve bu tür bir örnek yapmak için şifreli kitap. Sadece beş yaşamıştır yüzyıl, aynı zamanda sıçrama içine geri kalan elektronik dizgi değişen birşey olmadı. http://www.youtube.com/watch?v=A_6gNZCkajU&feature=relmfu 1960'lı yıllarda popüler oldu Çeşitli yaprak serbest içeren Gereklilik haline gelmiştir geçit ve son zamanlarda masaüstü yayıncılık Aldus PageMaker gibi yazılım Gereklilik haline gelmiştir sürümleri dahil olmak üzere.

Şimdi bunu ayrıştırmak ve video url ve kimliklerini tüm Youtube bulmak istiyorum.

Bunun nasıl herhangi bir fikir?

CEVAP
29 NİSAN 2011, Cuma


YouTube video URL biçimleri: çeşitli karşılaştı

  • en son kısa biçimi: http://youtu.be/NLqAF9hrVbY
  • iframe: http://www.youtube.com/embed/NLqAF9hrVbY
  • iframe (güvenli): https://www.youtube.com/embed/NLqAF9hrVbY
  • nesne param: http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US
  • nesne embed: http://www.youtube.com/v/NLqAF9hrVbY?fs=1&hl=en_US
  • dikkat: http://www.youtube.com/watch?v=NLqAF9hrVbY
  • kullanıcılar: http://www.youtube.com/user/Scobleizer#p/u/1/1p3vcRhsYGo
  • ytscreeningroom: http://www.youtube.com/ytscreeningroom?v=NRHVzbJVx8I
  • herhangi bir/şey/gider!: http://www.youtube.com/sandalsResorts#p/c/54B8C800269D7C1B/2/PPS-8DMrAn4
  • herhangi/alt/da: http://gdata.youtube.com/feeds/api/videos/NLqAF9hrVbY
  • daha fazla kullanımı http://www.youtube.com/watch?v=spDj54kf-vY&feature=g-vrec
  • sorgu nokta olabilir: http://www.youtube.com/watch?v=spDj54kf-vY&feature=youtu.be
  • nocookie etki alanı: http://www.youtube-nocookie.com

İşte bu URL formları her maçlar ve bağlantılar bağlantılar zaten onlar da onları dönüştüren bir düzenli ifade yorumladı ile bir PHP fonksiyonu

// Linkify youtube URLs which are not already links.
function linkifyYouTubeURLs($text) {
    $text = preg_replace('~
        # Match non-linked youtube URL in the wild. (Rev:20130823)
        https?://         # Required scheme. Either http or https.
        (?:[0-9A-Z-] \.)? # Optional subdomain.
        (?:               # Group host alternatives.
          youtu\.be/      # Either youtu.be,
        | youtube         # or youtube.com or
          (?:-nocookie)?  # youtube-nocookie.com
          \.com           # followed by
          \S*             # Allow anything up to VIDEO_ID,
          [^\w\s-]       # but char before ID is non-ID char.
        )                 # End host alternatives.
        ([\w-]{11})      # $1: VIDEO_ID is exactly 11 chars.
        (?=[^\w-]|$)     # Assert next char is non-ID or EOS.
        (?!               # Assert URL is not pre-linked.
          [?=& %\w.-]*    # Allow URL (query) remainder.
          (?:             # Group pre-linked alternatives.
            [\'"][^<>]*>  # Either inside a start tag,
          | </a>          # or inside <a> element text contents.
          )               # End recognized pre-linked alts.
        )                 # End negative lookahead assertion.
        [?=& %\w.-]*        # Consume any URL (query) remainder.
        ~ix', 
        '<a href="http://www.youtube.com/watch?v=$1">YouTube link: $1</a>',
        $text);
    return $text;
}

Ve Burada aynı düzenli ifade ile bir JavaScript sürümü kaldırıldı yorum ():

// Linkify youtube URLs which are not already links.
function linkifyYouTubeURLs(text) {
    var re = /https?:\/\/(?:[0-9A-Z-] \.)?(?:youtu\.be\/|youtube(?:-nocookie)?\.com\S*[^\w\s-])([\w-]{11})(?=[^\w-]|$)(?![?=& %\w.-]*(?:['"][^<>]*>|<\/a>))[?=& %\w.-]*/ig;
    return text.replace(re,
        '<a href="http://www.youtube.com/watch?v=$1">YouTube link: $1</a>');
}

Notlar:

  • Biri yakalanır URL VİDEO_İD bölümü ve tek çekim grubu: $1.
  • Eğer metninizi önceden bağlı herhangi bir URL içermeyen biliyorsun, güvenli bir şekilde bu durum için (iddiasına açıklama ile başlıyor: . HANGİ TESTLERİ negatif ileri yönlü onaylama işlemi kaldırabilirsiniz ^em>"İddia URL önceden bağlı değildir."Bu normal ifade biraz hızlandırır.
  • Yerine dize uyacak şekilde değiştirilebilir. Bu sadece "http://www.youtube.com/watch?v=VIDEO_ID" genel tarzı bir bağlantı ve Bağlantı metni ayarlar oluşturur URL yukarıda verilen: "YouTube link: VIDEO_ID".

2011-07-05 düzenleme:Eklendi - ID char sınıfı için tire

2011-07-17 düzenleme:Tüketmek için sabit düzenli kalan kısmı (örnsorguURL aşağıdaki YouTube ID. Eklendi 'i'görmezden durumdeğiştirici. Yeniden camelCase için işlev. Önceden Bağlı Gelişmiş ileri yönlü test.

2011-07-27 düzenleme:Eklenen yeni "" ve "ytscreeningroom" YouTube URL biçimleri. kullanıcı

2011-08-02 düzenleme:Basitleştirilmiş/işlemek için genelleştirilmiş yeni "gider/her/şey" YouTube URL.

2011-08-25 düzenleme:Bazı değişiklikler:

  • Javascript versiyonu eklendi: 22* *işlevi.
  • Bir önceki sürüm düzeni (HTTP protokolü) kısmı isteğe bağlı olmadığını ve bu nedenle geçersiz URL eşleşir. Düzeni gerekli bir parçası yaptı.
  • Bir önceki sürüm VİDEO_İD etrafında \b kelime sınırı çapa kullanılır. Ancak, bu VİDEO_İD başlar ya - bir çizgi ile sona erer. Bu durum işlediği sabit.
  • Tam 11 karakter uzunluğunda olmalı, böylece VİDEO_İD ifadesi değişti.
  • Bir önceki sürüm ise VİDEO_İD aşağıdaki sorgu dizesi olsaydı önceden bağlı URL çıkarmak için başarısız oldu. Negatif ileri yönlü onaylama işlemi bu sorunu gidermek için geliştirilmiş.
  • Eklenen karakter sınıfı % sorgu dizesi eşleşen.
  • Değişti PHP sürümü sınırlayıcı gelen düzenli ifade: a %: ~.
  • Eklenen bir "Notlar" bazı kullanışlı notlar bölümü.

2011-10-12 düzenleme:Youtube URL ana bölümü şimdi herhangi bir işlem (sadece www.) olabilir.

2012-05-01 düzenleme:URL bölümüne şimdilik izin verebilir tüketmek '-'.

2013-08-23 düzenleme:Ek olarak format @Mei tarafından sağlanan. (Sorgu bir parçası olabilir . nokta.

2013-11-30 düzenleme:Ek olarak format @CRONUS tarafından sağlanan: youtube-nocookie.com.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • OnlyFunClips

    OnlyFunClips

    16 ŞUBAT 2012
  • TouchePro

    TouchePro

    27 EYLÜL 2007