Проблема имен тегов при парсинге атрибутов через регулярки в PHP

Атрибут src может быть не только у картинок, но и у других тегов:

<img src="1.png">
<script src="file.js"></script>

Также в теге могут быть и другие атрибуты:

<img src="1.png">
<img class="image" src="1.png">
<script src="file.js"></script>

Чтобы не цеплять лишние теги, мы должны указать в регулярке имя тега. При этом также придется учесть наличие других атрибутов. Сделаем это:

<?php
	preg_match_all('#<img[^>]+src\s*=\s*(["\'])(.+?)\1#su', $str, $matches, PREG_PATTERN_ORDER);
?>

Проверим, что все работает:

<?php
	var_dump($matches[2]);
?>

Найдите содержимое атрибутов href всех ссылок:

<a href="page1.html">link1</a>
<a href='page2.html'>link2</a>
<a class="link" href = "page3.html">link3</a>
<link rel="stylesheet" href="styles.css">



Чат с GPT Компилятор