Определение ссылок youtube

RezzaSergio

Создатель
Заблокирован
Регистрация
17 Июн 2011
Сообщения
20
Реакции
1
  • Автор темы
  • Заблокирован
  • #1
Здравствуйте, требуется помощь.
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
{
  //ссылок нет
}
3. Нужно сделать так, "текст который был <a href="тут ссылка">показать видео</a> текст который был"

--------------------------------------------------------------------------
НАШЁЛ РЕШЕНИЕ =)

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);
 
?>
 
Назад
Сверху