Вы можете использовать третий параметр preg_match
, чтобы узнать, что соответствует (это массив, переданный по ссылке) :
int preg_match ( string $pattern ,
string $subject [, array &$matches [,
int $flags [, int $offset ]]] )
Если совпадения предоставлены, то это
заполнены результатами поиска.
$matches[0]
будет содержать текст, который
соответствует полный шаблон, $matches[1]
будет иметь текст, который соответствует
первый захваченный в скобках
subpattern и т. д.
Например, с этой частью кода:
$str = 'Lorem ipsum dolor sit amet, adipisicing <img src="http://example.com/img.jpg" />consequat.';
$matches = array();
if (preg_match('#<img src="(.*?)" />#', $str, $matches)) {
var_dump($matches);
}
Вы получите этот вывод:
array
0 => string '<img src="http://example.com/img.jpg" />' (length=37)
1 => string 'http://example.com/img.jpg' (length=23)
(Обратите внимание, что мое регулярное выражение слишком упрощено - и что регулярное выражение, как правило, не является "правильным инструментом", когда речь идет о извлечении данных из некоторой строки HTML ...)