Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Metindeki Youtube Linkini Algılama

Konu, 'PHP' kısmında dinlex tarafından paylaşıldı.

  1. dinlex

    dinlex Aktif Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    341
    Beğenilen Mesajlar:
    88
    Şehir:
    Hatay
    Merhaba, İçeriği belirsiz olan bir metinde youtube linki olup olmadığını söyleyen ve o linki yazan bir fonksiyon yazabilecek var mı rica etsem. Regex kodlarıyla yapılacak sanırım ama ben hiç anlamam.

    Örneğin;
    PHP:
    $metin "Birinci linkimiz https://www.youtube.com/watch?v=MXBXcP_SDb8 ve ikinci linkimiz https://www.youtube.com/watch?v=s-WstUwL7lE keyifli izlemeler. Ya da şurdan istediğinizi arayın http://google.com";

    şeklindeki bir metiden "https://www.youtube.co.m/watch?v=s-WstUwL7lE" sonucunu çıkarsın bana. Yani son paylaşılan youtube linkini. Yapabilen çıkar diye düşünüyorum.
    Yardımınızı esirgemeyin duacınız olurum...
     
  2. EMRESONMEZESK

    EMRESONMEZESK Üye

    Kayıt:
    1 Aralık 2016
    Mesajlar:
    124
    Beğenilen Mesajlar:
    13
    Şehir:
    ESKİŞEHİR
    Bu kodu yazrken siralaman hep boyle mi olacak yani birinci linkimiz su iki ci linkimiz bu diye yoksa kullanicilar car ve onlar sayfaya youtube linkimi atiyo
     
  3. wurucu

    wurucu Üye

    Kayıt:
    28 Ağustos 2008
    Mesajlar:
    138
    Beğenilen Mesajlar:
    7
    Meslek:
    Öğrenci
    Şehir:
    Mersin
    Kod:
    $pattern = 'http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?‌[\w\?‌=]*)?';
    $content = 'Birinci linkimiz https://www.youtube.com/watch?v=MXBXcP_SDb8 ve ikinci linkimiz https://www.youtube.com/watch?v=s-WstUwL7lE keyifli izlemeler. Ya da şurdan istediğinizi arayın http://google.com';
    preg_match_all($pattern, $content, $results);
    print_r($results);
    
    Denemedim ama çalışıyor olması lazım.
    Bakındığım kaynaklar :
    Regular expression for youtube links
    PHP ile regular expression (regex)
     
    dinlex bunu beğendi.
  4. dinlex

    dinlex Aktif Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    341
    Beğenilen Mesajlar:
    88
    Şehir:
    Hatay
    İçerik belirsiz. Üyeler var ve istediklerini yazabiliyorlar. Kimi paylaşımda hiç link yokken, sadece yazı varken, kimisinde 10 tane link olabilir. Kimisinde sadece youtube linkleri varken, kimisinde sadece başka sitelerin linkleri var.

    Ben de içinde herhangi bir youtube linki olanların videosunu çekip paylaşımın altında göstermek istiyorum facebook tarzı.
     
  5. dinlex

    dinlex Aktif Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    341
    Beğenilen Mesajlar:
    88
    Şehir:
    Hatay
    Maalesef boş sonuç çıkarıyor. Kaynaklara da bakıyorum şuan. Çok teşekkür ederim, ben o kaynağı bile bulamamıştım :)
     
  6. dinlex

    dinlex Aktif Üye

    Kayıt:
    23 Aralık 2016
    Mesajlar:
    341
    Beğenilen Mesajlar:
    88
    Şehir:
    Hatay
    Ve 4 saatlik yoğun bir uğraşın ardından nihayet yapabildim. Birine lazım olur diye dursun burada da.

    PHP:
    function link_bul($content){
    $pattern '~(?:https?://)?(?:www\.)?youtu(?:be\.com/watch\?(?:.*?&(?:amp;)?)?v=|\.be/)([\w\-]+)(?:&(?:amp;)?[\w\?=]*)?~';
    preg_match_all($pattern$content$results);
    print_r (end(end($results)));
    }

    $content 'Birinci linkimiz https://www.youtube.com/watch?v=MXBXcP_SDb8 ve ikinci linkimiz https://www.youtube.com/watch?v=s-WstUwL7lE keyifli izlemeler. https://www.youtube.com/watch?v=-ykpyhb_QPo https://www.youtube.com/watch?v=MXBXcP_SDb8 Ya da şurdan istediğinizi arayın http://google.com';

    echo 
    link_bul($content);
    Fonksiyon halinde yaptım. Link olarak değil de, videonun kodunu veriyor ama benim işime yarada. Az bir değişiklikle videonun linkini de verebilir.
    "end(end($results))" ile dizideki son elemanı alıyor.