REGEX:用于检测不在<object>标签内的<embed />标签的模式?</object>

时间:2012-04-09 22:27:42

标签: php regex

我正在尝试获取动态生成页面上的视频总数。为此,我解析页面的html并搜索所有<object><iframe><embed>标记。除了视频嵌入代码之外,该页面不会包含任何其他类型的iframe内容,因此我可以确定任何iframe标记都是视频。问题是像Hulu这样的一些嵌入代码在<embed>标记内有<object>标记。所以我目前的REGEX:

'/(<iframe|<object|<embed)/i'

这个Hulu嵌入代码被视为2个视频而不是一个:

<object id="videoplayer1" width="728" height="407">
   <param name="movie" value='http://www.hulu.com/embed/7qXAa2z1zXKPMw4mBakrRw'></param>
   <param name="allowFullScreen" value="true"></param>
   <param name="allowScriptAccess" value="never"></param>
   <embed src='http://www.hulu.com/embed/7qXAa2z1zXKPMw4mBakrRw' type="application/x-shockwave-flash" allowfullscreen="true" width="728" height="407" allowscriptaccess='never'></embed>
</object>

我只想搜索未被<object>标记封装的那些,而不是搜索所有嵌入标记。所以上面的hulu将被避免,但是这样的一个将被计算在内:

<embed src="http://www.ebaumsworld.com/player.swf" allowScriptAccess="always" flashvars="id1=81748652" wmode="opaque" width="567" height="345" allowfullscreen="true" />

对于这种情况,REGEX模式会是什么样的,我正在使用PHP。

1 个答案:

答案 0 :(得分:0)

带xpath的Xml解析器也是我的去吧