0

我有一个存储为 iframe url 的 youtube 视频的数据库。我想做的是使用一些基本的替换命令在每个视频旁边显示 youtube 缩略图。我想在 php 中运行一个函数,它会自动查找内容,去掉 iframe 标签并留下一个只有 id 的函数。

在第三个字段中,我有代码:

echo $galleryitems[$i][2]

会回来

<iframe width="640" height="360" src="http://www.youtube.com/embed/scYj-bDEaKI?rel=0" frameborder="0" allowfullscreen></iframe>

我不确定是否有任何其他方法可以做到这一点,并且由于所有代码都是相同的,我想从代码中删除这些部分:

<iframe width="640" height="360" src="http://www.youtube.com/embed/

?rel=0" frameborder="0" allowfullscreen></iframe>`

我想一个str_replace就足够了?我最后想要的是一个功能$strLink = scYj-bDEaKI(只是视频ID)

稍微浏览了一下并尝试了这个:

$galleryitems[$i][2] = preg_replace('/<iframe[^>]*>(.*?)<\/iframe>/', '', $strLink, 1);

echo $strLink;

但什么也没返回。眼睛变直了,谢谢你的帮助!

4

2 回答 2

1

对于 PHP RegEx 语法,您可以参考

http://php.net/manual/en/reference.pcre.pattern.syntax.php

$s = '<iframe width="640" height="360" src="http://www.youtube.com/embed/scYj-bDEaKI?rel=0" frameborder="0" allowfullscreen></iframe>';
echo preg_replace('/<iframe.* src="http:\/\/www\.youtube\.com\/embed\/(.*?)\?.*<\/iframe>/', '$1', $s);
于 2013-02-20T14:46:31.397 回答
0

请不要使用 RegEx 解析 HTML。

$dom = new DOMDocument();
$dom->loadHTML($html);
$items = $dom->getElementsByTagName('iframe');
if ($items->length) {
    $url = basename(parse_url($items->item(0)->getAttribute('src'), PHP_URL_PATH));
}

键盘中的示例

于 2013-02-20T15:01:42.767 回答