Blog Kategorileri

Son Eklenen Konular

preg_replace_callback ile video oynatmak
Resim

preg_replace_callback ile daha daha çok şey yapmak mümkün, çalışma mantığını daha kısa ve pratik bir şelide anlatabilmek açısından ben video oyatma örneği hazırladım.

preg_replace_callback metodu hakkında daha fazla bilgiyi php.net in  http://php.net/manual/tr/function.preg-replace-callback.php  adresinden bakabilirsiniz.

 

Şimdi konunuyu  örnekler ile anlatacak olursam alttaki gibi  html kodlarına sahip bir değişkenimiz var

php

$degisken = '<div class="video">
Bu kısımda konuyu anlatan bir metin bulunur. Bu kısımda konuyu anlatan bir metin bulunur.  
[video]http://www.youtube.com/watch?v=QQQ7kva3LXc&feature=g-crec[/video]
videodan soraki kalan yazılar
<!-- [video]videoUrl[/video] -->
</div>';

Yukardaki değişkenimiz içerisinde bulunan [ vide o ] http://www.youtube.com/watch?v=QQQ7kva3LXc&feature=g-crec [/vide o] şeklindeki bölümü youtube video player olarak değiştireceğiz.

Öncelikle preg_replace_callback metodun kullanacağı metodu yazalım

php

videoOynat($url){
     $en = 320;
     $boy = 180;
     $video = preg_replace(
               '#http://(?:www\.)?youtube.com/(watch\?v=|v/)(.*?)#i', 
               'http://www.youtube.com/embed/\3', 
               $url[1]
          );
     return '<iframe width="'.$en.'" height="'.180.'" src="'.$video.'" frameborder="0" allowfullscreen></iframe>';   
}

yukardaki yazığım metoda bakacak olursak tek bir parametre alıyor ve string bir metod, geriye veri return ediyor, 1 parametre alıyor ki bu parametre array (dizi değişken) dir  preg_replace_callback metodu yazdığım şablon ve şablonun içerisinde almak istediğim verilerin hepsini bir dizi değişken olark bu metoda vericektiir, alt tarafta daha iyi anlayacaksınız.

php

$sablon = '#\[video\](.*?)\[\/video\]#is'; // yazı içerisinde almak istediğim kısım için 

//en yukardaki yazdığım değişken için videoOynat metodunun kullanımı 

echo preg_replace_callback($sablon, 'videoOynat', $degisken); //Sonuç yazılarınızın arasında video oynayacaktır.

yukardaki kullanımda yazdığım şablon ve (.*?) şeklinde şablonun içerisinde belirttiğim alanı preg_replace_callback metodu  videoOynat metoduma şu şekilde bir dizi olarak gönderecektir.

php

array (
     0 => [video]http://www.youtube.com/watch?v=QQQ7kva3LXc&feature=g-crec[/video]
     1 => http://www.youtube.com/watch?v=QQQ7kva3LXc&feature=g-crec
)

 

$değişken değerimizin uygulanmış hali

Bu kısımda konuyu anlatan bir metin bulunur. Bu kısımda konuyu anlatan bir metin bulunur.  


videodan soraki kalan yazılar


Yukarda videoOynat metodu içerisinde farklı şablonlar yazarak farklı url adreslerinide çalıştırabilir yapmak mümkün.

comments powered by Disqus