Регулярное выражение лучше для этого случая, потому что src
может никогда не быть в первом атрибуте, поэтому это не будет работать.
Вот что я рекомендую:
function src($html) {
if(preg_match('#<embed[^>]*?src=["\'](.*?)["\'](.*?)></embed>#si', stripslashes($html), $src)) {
return $src[1];
}
return ''; // or any other error if you need
}
echo src($html);
выведет: http://www.domain.com/video/video1.swf
[^>]
соответствует одному символу, который не содержится в скобках.[^>] соответствует любому символу, кроме >
["\']
соответствует src="
или src='
(.*?)
Точка (.) означает совпадение с любым символом.Звезда (*) означает ноль или более раз.А вопросительный знак (?) Означает быть жадным и продолжать идти, пока шаблон все еще совпадает.Сложите все это вместе, это означает, что попробуйте сопоставить любой символ, ноль или более раз, и получите как можно больше
/i
без учета регистра
Вот дополнительная информация:
http://en.wikipedia.org/wiki/Regular_expression
http://www.regular -expressions.info / reference.html