【问题标题】:How to replace Youtube urls in text with embeded code (in PHP)?如何用嵌入代码(在 PHP 中)替换文本中的 Youtube url?
【发布时间】:2011-03-15 18:34:57
【问题描述】:

这是我目前得到的:

<?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;

?>

老实说,我不知道为什么它不起作用。一些帮助将不胜感激。谢谢。

【问题讨论】:

  • 尝试过滤视频ID...

标签: php youtube embed


【解决方案1】:

您只需让* 不贪心:

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

"Watch out for greediness"

【讨论】:

    【解决方案2】:

    试试这个简单的 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');
    

    【讨论】:

      【解决方案3】:

      我将创建一个带有已配置嵌入代码的字符串。链接属性可以是#LINK#width="#WIDTH#"。比用您自己的值替换所有参数。使用起来可能会舒服得多。或者您可以简单地使用youtube embed code generator

      【讨论】:

        猜你喜欢
        • 2012-01-02
        • 2014-01-21
        • 2011-06-27
        • 2012-07-22
        • 2015-03-02
        • 2015-02-12
        • 2012-11-14
        • 2015-12-03
        • 2013-03-27
        相关资源
        最近更新 更多