2

如何获取YouTube提供的YouTube嵌入代码并使用正则表达式将其转换为有效的FBML代码,即使用fb:swf标签?

到目前为止,我想出的正则表达式是:

preg_replace('/<object(.*)<\/object>/i', "Whatever I need here...", $str);

我知道这很蹩脚,但这是我的第一次尝试。

PS:YouTube 嵌入代码示例,

<object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/NWHfY_lvKIQ&hl=en_GB&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NWHfY_lvKIQ&hl=en_GB&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object>
4

2 回答 2

0

前几天我不得不这样做。这是我编写的一个函数,用于在字符串/输入中获取剪辑 id 并将它们放入数组中(您可以将其插入到嵌入对象中):

preg_match_all('/\/vi?\/([A-Za-z0-9\+_-]+)/i', $str_containing_yt_ids, $yt_ids);

然后

print_r($yt_ids);

如果您需要动态获取标题:

function get_yt_title($clip_id){
    $feedURL = 'http://gdata.youtube.com/feeds/api/videos/' . $clip_id;
    $entry = simplexml_load_file($feedURL);
    $video= new stdClass;
    $media = $entry->children('http://search.yahoo.com/mrss/');
    $video->title = ucwords(strtolower($media->group->title));
    return $video->title;
}
于 2010-03-10T12:31:15.347 回答
-2

据我所知,您想从嵌入式代码中收集视频 URL,然后做您的事情并获得您想要的任何内容。

假设整个嵌入式代码(源代码和值)中只有两个 URL,并且 URL(至少不是 YouTube)中没有引号,我用来获取 URL 的正则表达式是:

[^(src=")]http.*[^"]

解释:http'src="' 之前没有得到,直到有报价。

于 2010-03-10T12:34:02.480 回答