我有以下HTML,我需要在VALUE中提取网址
<param name="movie" value="http://domain.com/path/to/file.swf" />
我尝试了以下操作,但没有成功。
preg_match("'<param name=\"movie\" value=\"(.*?)\" />si'", $source, $url);
echo $url[1];
我做错了什么?
答案 0 :(得分:1)
如果你真的想使用preg_match
,你可以这样做:
preg_match('/<param name=\"movie\" value=\"(.*?)\" \/>/is', $source, $url);
echo $url[1]
问题在于没有转移标记末尾的/
符号,并且您的"
和'
彼此相邻,而且可能没有任何理由。
答案 1 :(得分:0)
我的,正确的变体:
$source = '<param name="movie" value="http://domain.com/path/to/file.swf" />';
preg_match('!<param name="movie" value="(.*?)"!U', $source, $url);
echo $url[1];
结果:
http://domain.com/path/to/file.swf
请注意修饰符U
,这意味着Ungreedy
,它允许.*
紧凑并且不会返回超出实际需要的数量。