Ответ 1
Вы можете использовать третий параметр preg_match
, чтобы узнать, что соответствовало (это массив, переданный по ссылке):
int preg_match ( string $pattern ,
string $subject [, array &$matches [,
int $flags [, int $offset ]]] )
Если указаны совпадения, то это заполненный результатами поиска.
$matches[0]
будет содержать текст, который соответствует полной схеме,$matches[1]
будет иметь текст, соответствующий впервые зафиксировано в скобках подшаблон и т.д.
Например, с этой частью кода:
$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...)