Следующее регулярное выражение получает все изображения src, но показывает его с src=" в начале и " в конце пути.
src="
"
Как я могу удалить его и показать только путь?
preg_match('/src="(.*?)"/i' , $content1 , $matches);
Вы почти все делаете правильно. Регулярное выражение верно, но:
echo $matches[1];
Это выведет первый захваченный подшаблон. Первое совпадение ($matches[0]) всегда будет содержать полный текст, который был сопоставлен, включая src="" битов.
$matches[0]
src=""
Код:
$re = '/(?<=src=")(?:.*?)(?=")/ui'; $txt = '<img src="http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG" height="32" width="32" alt="">'; $nMatches = preg_match($re, $txt, $aMatches);
Выход:
Array ( [0] => http://www.gravatar.com/avatar/6f5de9?s=32&d=identicon&r=PG )
$ match будет содержать весь сопоставленный шаблон в первом элементе, за которым следуют элементы для каждого подшаблона. В этом случае вам нужно $ match [1] для того, что вы хотите.