Preg_replace youtube嵌入图像

时间:2012-04-17 09:37:50

标签: wordpress youtube preg-replace preg-match

我正在尝试做一些非常奇怪的事情,而且我有一些运气,但我遇到了一些障碍。我已基本完成了它的第一部分,现在我只需要全面翻译它。这与WordPress有关,但它是一个与WP特定相关的一般概念问题,所以我决定在这里提问。

基本上,我要做的是解析一个变量,并用其他东西替换一些代码,如果它存在(对于WP用户,我试图通过the_content()解析,替换一个基于某些条件的位。)

我正在解析名为$content的变量。 $content内的某个位置将是标准的YouTube维护代码<iframe src="http://www.youtube.com/embed/xxxxxxxxx" frameborder="0" width="560" height="315"></iframe>等。我的目标是获取xxxxxx值,然后用<iframe>替换整个<img>锚。

我有正则表达式来获取YouTube视频ID,并且可以回显图像没问题。我用过:

if (preg_match('(/embed/([a-z0-9A-Z]+))', $content, $output) > 0) {
        echo("<img src='http://img.youtube.com/vi/".$output[1]."/0.jpg' alt=' ' />");
    }

返回$content中找到的YouTube视频的缩略图。我无法将此正则表达式转换为preg_replace,因此我可以将<iframe>更改为<img src='http://img.youtube.com/vi/xxxxxxxxx/0.jpg />。这可能吗?

如果有人能指出我正确的方向,我会很高兴。

谢谢!

1 个答案:

答案 0 :(得分:0)

我讨厌这么快就这么做。但是,我似乎已经解决了我的问题。

来到这里并打字并清理我的想法似乎在这里和那里都有所帮助。

我能用这段代码完成它(我确定很难看):

        $the_id = preg_match('(/embed/([a-z0-9A-Z]+))', $content, $output);
        $replacement = "<img src='http://img.youtube.com/vi/".$output[1]."/0.jpg' alt=' ' />";

        $content = preg_replace("/<iframe.*?<\/iframe>/si", $replacement, $content);
        echo $content;