Как с помощью php разбить html текст на теги в массив?

Есть простой html код, к примеру:
<img src="image.jpg>
<p>Об этом впервые заговорили в конце 1950-х годов.</p>
<span>роль ионизации атмосферы в формировании облаков</span>
<div><strong>выдвинули гипотезу о влиянии космических лучей на климат</strong></div>

Подскажите простой пример как можно распарсить такой код с помощью php в массив по html-тегам. Вложенные теги не беря в учет.

В идеале получить массив, где:
array[0] = <img src="image.jpg">
array[1] = <p>Об этом впервые заговорили в конце 1950-х годов.</p>
array[2] = <span>роль ионизации атмосферы в формировании облаков</span>
array[3] = <div><strong>выдвинули гипотезу о влиянии космических лучей на климат</strong></div>
  • Вопрос задан
  • 4379 просмотров
Решения вопроса 1
gdX
@gdX Автор вопроса
Подсказали на киберфоруме, решение такое:
preg_match_all('#<([a-z]+)[^>]*>(?:.+</\1>)?#is',$text,$array);
foreach ($array[0] AS $val) echo $val;

Вроде как полет нормальный, буду тестить в условиях боя.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
$dom = new DOMDocument;
$dom->loadHTML($html);
$images = $dom->getElementsByTagName('img');
foreach ($images as $image) {
        $image->setAttribute('src', 'http://example.com/' . $image->getAttribute('src'));
}
$html = $dom->saveHTML();

php.net/manual/en/book.dom.php
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Если построчно, то приблизительно так:
$stringsArray = preg_split("/(\r\n|\n|\r)/",$content);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы