Чистка данных при парсинге через регулярки на PHP
Чистить как правило нужно и получаемые данные. Пусть к примеру, у нас есть следующий текст:
<p>
text1
</p>
<p>
text2
text2
text2
</p>
<p>
<span>text3</span> text3 text3
</p>
Пусть в переменную $res
мы получили
массив текстов абзацев. Тексты абзацев будут
содержать много мусора. Давайте их почистим:
<?php
$clearRes = [];
foreach ($res as $elem) {
$elem = trim($elem); // удалим концевые пробелы
$elem = strip_tags($elem); // удалим внутренние теги
$elem = preg_replace("#\t+#", ' ', $elem); // заменим табы на пробелы
$clearRes[] = $elem;
}
var_dump($clearRes);
?>
Получите массив текстов всех h2
и массив текстов всех абзацев:
<h2>111</h2>
<p>
text1<br>
text1<br>
text1<br>
</p>
<h2><span>222</span></h2>
<p>
text2
text2
text2
<hr>
</p>
<h2 class="last">333</h2>
<p>
text3
text3
</p>