首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用PHP正则表达式来解析iframe标签?

如何使用PHP正则表达式来解析iframe标签?
EN

Stack Overflow用户
提问于 2011-04-01 04:44:30
回答 3查看 201关注 0票数 0

我正在尝试使用preg_match从嵌入代码中提取YouTube视频的宽度。

代码类似于:

代码语言:javascript
运行
复制
<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/3uw-nUvGrBY" frameborder="0" allowfullscreen></iframe>

我想提取width="480"

我试过了:

代码语言:javascript
运行
复制
/width="[0-9]+"/
/width=\"[0-9]+\"/
/width=.[0-9]+./

但它们都不起作用。如果我去掉最后的双引号和数字,我可以提取width=",但不能超出这个范围。

EN

回答 3

Stack Overflow用户

发布于 2011-04-01 04:47:04

代码语言:javascript
运行
复制
$string = '<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/3uw-nUvGrBY" frameborder="0" allowfullscreen></iframe>';
preg_match('/.*width="(\d+)".*/', $string, $match);\
echo $match[1];

但我确信,PHP或JS DOM能够更轻松地完成这项工作……

票数 0
EN

Stack Overflow用户

发布于 2011-04-01 04:50:24

您的实际源代码的格式可能会有所不同。您的示例html代码片段看起来太典型了。试试这个:

代码语言:javascript
运行
复制
preg_match('#\b(width\s*=)\s*["\']?(\d+)#i', $source, $match);
print $match[2];
票数 0
EN

Stack Overflow用户

发布于 2011-04-01 04:57:39

代码语言:javascript
运行
复制
$ptn = "/(?<=width=\")\d*(?=\")/";
$str = '<iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/3uw-nUvGrBY" frameborder="0" allowfullscreen></iframe>';
preg_match($ptn, $str, $matches);
echo $matches[0]; // 480
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5506088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档