regex — Как я могу поменять местами текст ссылки на ссылку и ссылку на YouTube или вставить код YouTube в Stack Overflow

Как я могу поменять местами текст, содержащий ссылки и URL-адрес YouTube для вставки видео YouTube:

$text = " normal text here
youtube : http://www.youtube.com/watch?v=xxxxxx
link : http://stackoverflow.com
and some normal text here too.
";

Результат:

youtube : <iframe width="529" height="315" src="//www.youtube.com/embed/YOUTUBE_URL_HERE" frameborder="0" allowfullscreen></iframe>
link : <a href="http://stackoverflow.com">http://stackoverflow.com</a>
some normal text here too.

0

Решение

function clickableLinksANDyoutubeIframe($text) {

//swapping to embed youtube video
$text = preg_replace("/\s*[a-zA-Z\/\/:\.]*youtube.com\/watch\?v=([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i","<iframe width=\"529\" height=\"315\" src=\"//www.youtube.com/embed/$1\" frameborder=\"0\" allowfullscreen></iframe>",$text);

//swapping to url href
$text = preg_replace('/(?<!\S)#([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_]+)/', '<a href="/hashtag/$1" class="hashtaglink">#$1</a>', $text);
$text = preg_replace('/(?<!\S)@([0-9a-zA-Zذضصثقفغعهخحجدشسيبلاتنمكطئءؤرلاىةوزظأإآ_-]+)/', '<a href="/$1" class="hashtaglink">@$1</a>', $text);
$text = nl2br($text);

//the result
return $text;

}

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]