• 06-02-2021, 15:28:47
    #1
    Merhaba Arkadaşlar... Zaman Zaman Takıldığım Konular Oluyor.. Yardım Edenlere Şimdiden Çok Teşekkür ederm..

    Youtube Linklerini Veritabanına Post ediyorum.. örneğin bu şekilde form alanına kopyalayıp gönderiyorum..
    https://www.youtube.com/watch?v=_Ny89Wp7bGQ
    Ama Dün Tesadüfen Youtube linkinden id yi ayırabilen bir javascript alert kodu..
    çok enteresan deil ama belki sizin için aklıma linki yapıştırıp sadece idesini post edebileceğim fikri geldi... bu mümkünmü acaba..

    Buldugum kod...
    <script type="text/javascript">
    function youtube_parser(url){
      var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
      var match = url.match(regExp);
      if (match&&match[7].length==11){
          var b=match[7];
          alert(b);
      }else{
          alert("Url incorrecta");
      }
    }
    </script>
    
    <script type="text/javascript">
    document.write(youtube_parser("http://youtu.be/0zM3nApSvMg"));
    </script>
    buda benim post ettiğim form un kodları...

    <form action="" method="post">
        
    <table class="table">
        
            <tr>
            <td>Youtube Video <font color="#FF0000" size="2"></font></td>
                <td><input type="text" name="video" class="form-control" ></td>
            </tr>
    
    
            <tr>
                <td></td>
                <td><input class="btn btn-primary"  type="submit" value="Ekle"></td>
            </tr>
    
        </table>
    
    </form>
    
    
    <?php
    if ($_POST) {
        $video = $_POST['video'];        
        
        if ($video<>"") {
            if ($baglanti->query("INSERT INTO linkler (video) VALUES ('$video')"))
            {            
    echo  "<meta http-equiv=\"refresh\" content=\"1;URL=index.php?Grup=1".$_REQUEST['1']."\"> ";
    
    echo "<div class='alert alert-success'><p>Mesajınız başarıyla gönderildi</p></div>";    
        
            }
            else
            {    
    echo "<div class='alert alert-danger'><p>Bir Hata Var</p></div>";                
            }
        }
    }
    ?>
    bu kodu buraya entegre etmek mümkünmü acaba.. kolay ise düzenleyebilirmisiniz bana.. çözemedim bir türlü..


    Youtube linkini tüm yapıştırıcam form alanına.. ama veritabanına sadece id yi post edecek...
  • 06-02-2021, 15:47:45
    #2
    Bunu PHP tarafında şu şekilde yaparsınız;
    Aldığınız YouTube URL'i bu şekilde olsun:
    https://www.youtube.com/watch?v=okmVz5K1lHY

    Buradaki değer "v=" ile belirtilmiş ve v ile gönderilmiş. explode fonksiyonu ile "=" karakterinden durumu yakalayabiliriz. Ama bu akla ilk gelen yöntem.
    Daha iyi bir yöntem olan parse_url ve parse_str kullanacağız.
    // URL değişkenini statik şekilde tanımlıyorum. Siz burada kullanıcıdan alınan veriyi kontrol edeceksiniz.
    $url = 'https://www.youtube.com/watch?v=okmVz5K1lHY';
    // parse_url fonksiyonu ile URL özelliklerini çekiyorum.
    $parts = parse_url($url);
    $parts çıktısı şu şekilde bir dizi döndürüyor. Bizim burada yakalamamız gereken anahtar query değeri.
    Array (
        [scheme] => https
        [host] => www.youtube.com
        [path] => /watch
        [query] => v=okmVz5K1lHY
    )
    Hemen devam edelim parse_str fonksiyonu ile query anahtarının içerisindeki değeri $query ismindeki değişkene yazıyorum.
    // URL değişkenini statik şekilde tanımlıyorum. Siz burada kullanıcıdan alınan veriyi kontrol edeceksiniz.
    $url = 'https://www.youtube.com/watch?v=okmVz5K1lHY';
    // parse_url fonksiyonu ile URL özelliklerini çekiyorum.
    $parts = parse_url($url);
    // $query değişkenimize query anahtarı içerisindeki değeri yazıyorum.
    parse_str($parts['query'], $query);
    $query isimli değişkenin içerisinde "v" adında bir anahtar oluşuyor. Bu anahtarın değerini kullanarak sadece YouTube video id'sini kullanabilirsiniz.
    Array (
        [v] => okmVz5K1lHY
    )
  • 06-02-2021, 15:49:20
    #3
    Üyeliği durduruldu
    Şimdi öncelikle konudaki JavaScript kodu düzenli ifade (Regex) ile çalışıyor. Düzenli ifadeler her programlama dilinde kullanılabilir, ondan dolayı PHP'ye uyarlayalım.

    PHP'de düzenli ifadeler için preg_match diye fonksiyonumuz var. Bunu kullanarak sizin Regex'i ayarlayalım.
    Kod: https://kodyapistir.com/yQsUom9Hpp

    Not: Sizdeki JavaScript kodunda ID uzunluğunun 11 karakter olduğunu kontrol ediyor, ancak bu bildiğim kadarıyla 11 karakterle sınırlı değil. İleride 12-13 karakter de olabilir, ondan dolayı ben 11 karaktere büyük veya eşit olarak yaptım.

    Şimdi bu kodu sizin kodunuza uyarlarsak şöyle olacak: https://kodyapistir.com/46y1WcKBCa
  • 06-02-2021, 15:53:06
    #4
    İkisinide deneyip yapmaya çalışcagım üstadlar..
    çok teşşekkür ederim.. çok iyi deilim kod konusunda..
    formuma entegre edebilirseniz harika olur.. ama bunuda deneyecegim.. çok teşekkür ederim...
  • 06-02-2021, 15:54:05
    #5
    ovv.. sonradan gördüm awoken üstad.. çok tesekkur ederim.. hemen bakıcam..