Всем привет! Использую функцию
preg_replace()
для замены BB кода видео из youtube, на код плеера Но проблема вот в чем:
preg_replace('/\[media\](?:https?:)?(?:\/+)?(?:www\.)?(?:m\.)?(?:youtube\.com|youtu\.be)\/(?:watch\?v=|embed\/)?([0-9a-zA-Z_\-]+)(.+)?\[\/media\]/is', '<div class="video_object"><iframe width="auto" height="auto" src="https://www.youtube.com/embed/$1?rel=0&autoplay=0" frameborder="0" allowfullscreen></iframe></div>', $text);
Шаблон регулярного выражения захватывает все от первого
[media] до последнего закрывающегося
[/media] если их в тексте несколько:
[media]https://youtube.com/embed/csdfdsfY[/media]
[media]https://youtube.com/embed/csdfsdfY[/media]
[media]https://youtube.com/embed/cRsdfdY[/media]
Тут шаблон заменит все одним плеером.
Я понимаю, что дело в жадности шаблона, но не знаю как исправить, ведь взять все то, что между тегами [media] и поставить знак вопроса не получается...