- Регистрация
- 17 Июн 2011
- Сообщения
- 20
- Реакции
- 1
- Автор темы
- Заблокирован
- #1
Здравствуйте, требуется помощь.
1. Из базы выбирается текст (допустим, $text)
2. С помощью preg_match отыскиваем ссылки youtube
3. Нужно сделать так, "текст который был <a href="тут ссылка">показать видео</a> текст который был"
--------------------------------------------------------------------------
НАШЁЛ РЕШЕНИЕ =)
1. Из базы выбирается текст (допустим, $text)
2. С помощью preg_match отыскиваем ссылки youtube
PHP:
if(preg_match('/https?:\/\/(?:[a-zA_Z]{2,3}.)?(?:youtube\.com\/watch\?)((?:[\w\d\-\_\=]+&(?:amp;)?)*v(?:<[A-Z]+>)?=([0-9a-zA-Z\-\_&;=]+))/i',$text))
{
//ссылка(ссылки) youtube присутствуют
}
else
{
//ссылок нет
}
--------------------------------------------------------------------------
НАШЁЛ РЕШЕНИЕ =)
PHP:
<?php
// Replace Youtube URLs with embed code
function embedYoutube($text)
{
$search = '% # Match any youtube URL in the wild.
(?:https?://)? # Optional scheme. Either http or https
(?:www\.)? # Optional www subdomain
(?: # Group host alternatives
youtu\.be/ # Either youtu.be,
| youtube\.com # or youtube.com
(?: # Group path alternatives
/embed/ # Either /embed/
| /v/ # or /v/
| /watch\?v= # or /watch\?v=
) # End path alternatives.
) # End host alternatives.
([\w\-]{10,12}) # Allow 10-12 for 11 char youtube id.
(?: # Group unwanted &feature extension
&feature=related # Either &feature=related
)
([\w\-]{0}) # Allow 0 Characters of &feature=related (hide)
\b # Anchor end to word boundary.
%x';
$replace = '<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/$1?fs=1"</param>
<param name="allowFullScreen" value="true"></param>
<param name="allowScriptAccess" value="always"></param>
<embed src="http://www.youtube.com/v/$1?fs=1"
type="application/x-shockwave-flash" allowscriptaccess="always" width="425" height="344">
</embed>
</object>';
return preg_replace($search, $replace, $text);
}
$string = 'This is the forum post content with some Youtube links:'."\n".
'http://www.youtube.com/watch?v=NLqAF9hrVbY'."\n".
'http://www.youtube.com/v/u1zgFlCw8Aw?fs=1&hl=en_US';
echo embedYoutube($string);
?>