Arkadaşlar bende bi' tane yapayım dedim. Benimkisi biraz daha basit oldu.

İlgili
pakete buradan bakabilirsiniz. (GitHub adresi vs. tüm bilgiler yer alıyor.)
Kullanımı için;
composer.json'a;
{
"require": {
"imsaintx/bbcode": "dev-master",
"zendframework/zend-stdlib": "2.3.*@dev",
"zendframework/zend-json": "2.3.*@dev"
}
}test dosyası;
<?php
require( "./vendor/autoload.php" );
use Bbcode\Bbcode;
Bbcode::addDefinition("youtube", "\[youtube\](.*)\[\/youtube\]", "<iframe src=\"http://www.youtube.com/embed/$1\" width=\"640\" height=\"480\" frameborder=\"0\"></iframe>")
->putHtml("<p>[youtube]ARypk5P6tPY[/youtube]</p>")
->parse();
echo Bbcode::getOutput();
Basit ama yararli olmus ellerine saglik

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 20:30:46 -->-> Daha önceki mesaj 20:29:22 --
Teşekkürler ellerine sağlık.
eğer faydalı olucak ise ben şu şekilde bir uygulama yazmıştım. sınıfını geliştirirken belki minik bir mantık yardımı olabilir.
Herbirini ayrı ayrı bbcode halinde kullanmak yerine
[video]http://videourladresi.com[/video]
tek video tagı kullanıp
videoOynat($url){
$en = 320;
$boy = 180;
if(stripos($url[1],"youtube"){
$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>';
}elseif(stripos($url[1],"dailymo"){
//dailymotion kodu
}
} $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
</div>';
$sablon = '#\[video\](.*?)\[\/video\]#is';
echo preg_replace_callback($sablon, 'videoOynat', $degisken);
Böylede olabilir ellerine saglik.