使用PHP从html代码获取Youtube视频ID
问题描述:
我想从html代码中获取所有唯一的youtube视频ID
I want to get all only youtube video ID from html code
查看youtube视频的(或多个)对象/嵌入代码
look the (or multiple) object/embed code for youtube video
//来自数据库的html
// html from database
<p>loremm ipsum dolor sit amet enot
<a href="link" attribute=""blah blah blah">anchor link</a>
</p>
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/Ou5eVl5eqtg&hl=es_ES&fs=1&"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/Ou5eVl5eqtg&hl=es_ES&fs=1&"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
width="425"
height="344">
</embed>
</object>
<image src="path/to/image.ext" >
<p>lorem ipsum dolor sit amet... blah</p>
<p>lorem ipsum dolor sit amet... blah</p>
<object width="425" height="344">
<param name="movie" value="http://www.youtube.com/v/Ou5eVl5eqtg&hl=es_ES&fs=1&"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/Ou5eVl5eqtg&hl=es_ES&fs=1&"
type="application/x-shockwave-flash"
allowscriptaccess="always"
allowfullscreen="true"
width="425"
height="344">
</embed>
</object>
<p>blah</p>
blah<br/>
blah<br/>
blah<br/>
答
从htmlpurifier的youtube插件中被偷走了:
Brazenly stolen from htmlpurifier's youtube plugin:
preg_match('#<object[^>]+>.+?http://www.youtube.com/v/([A-Za-z0-9\-_]+).+?</object>#s', $markup, $matches);
var_dump($matches[1]);