Как заменить URL-адреса Youtube в тексте встроенным кодом (в PHP)? - PullRequest
1 голос
/ 14 июля 2010

Это то, что у меня так далеко:

<?php

 $content = "word1 http://www.youtube.com/watch?v=yqfKe-67foQ&feature=related word2 http://www.youtube.com/watch?v=2vq7gDEn99Y&feature=related word3 http://www.youtube.com/watch?v=nW5HxgMYRto\nhttp://www.youtube.com/watch?v=8Uc2lpH0iZ0&feature=fvhl";
 $pattern = '/http:\/\/www\.youtube\.com\/watch\?(.*)v=([a-zA-Z0-9_\-]+)(\S*)/i';
 $replace = '<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/$2&amp;hl=en_US&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/$2&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>';

 $content = preg_replace($pattern, $replace, $content);
 echo $content;

?>

Я, честно говоря, понятия не имею, почему это не работает.Некоторая помощь будет оценена.Спасибо.

Ответы [ 3 ]

1 голос
/ 28 марта 2011

Попробуйте эту простую функцию для замены URL

function youtube($string)
{
  return preg_replace(
    '#(http://(www.)?youtube.com)?/(v/|watch\?v\=)([-|~_0-9A-Za-z]+)&?.*?#i',
    '<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/$4" frameborder="0" allowfullscreen></iframe>',
    $string
  );
}

echo youtube('http://www.youtube.com/watch?v=VWsjWCt1PsQ');
echo youtube('http://youtube.com/watch?v=VWsjWCt1PsQ');
echo youtube('http://youtube.com/v/VWsjWCt1PsQ');
echo youtube('http://www.youtube.com/v/VWsjWCt1PsQ');
1 голос
/ 14 июля 2010

Вы просто должны сделать * нежадным:

http:\/\/www\.youtube\.com\/watch\?(.*?)v=([a-zA-Z0-9_\-]+)(\S*)

См. «Остерегайтесь жадности» .

0 голосов
/ 30 января 2014

Я бы просто создал строку с настроенным кодом встраивания. Атрибутом ссылки может быть #LINK#, width="#WIDTH#". Затем замените все параметры на свои собственные. Это может быть гораздо удобнее в использовании. Или вы можете просто использовать генератор кода для вставки YouTube .

...