Как собрать текст внутри HTML-ссылок с помощью регулярных выражений? - PullRequest
0 голосов
/ 18 марта 2019

У меня есть строка со ссылками (как a -элементы внутри неупорядоченного списка (<li>) в HTML).Как я могу использовать правильное регулярное выражение для его анализа?

Мне нужно получить массив этих значений:

[
    "Керамическая плитка", 
    "Напольные покрытия"
]

Базовый HTML (пример):

<li><a href="/plitka/">Керамическая плитка</a></li> 
<li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li> 
<li><a href="/oboi/">Обои</a></li> 
<li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li> 
<li><a href="/santehnika/">Сантехника</a></li>

Большое спасибо.Очень ценю вашу помощь!

1 Ответ

2 голосов
/ 18 марта 2019

Анализатор - это инструмент, который вы должны использовать, а не регулярное выражение.Примерно так:

<?php
$links = '<li><a href="/plitka/">Керамическая плитка</a></li> 
<li><a href="/napolnye-pokrytiya/">Напольные покрытия</a></li> 
<li><a href="/oboi/">Обои</a></li> 
<li><a href="/mebel-dlia-vannoi/">Мебель для ванной</a></li> 
<li><a href="/santehnika/">Сантехника</a></li>';
$dom = new domdocument();
$dom->loadhtml('<?xml encoding="utf-8" ?>' . $links);
$links = $dom->getelementsbytagname('a');
foreach($links as $link) {
    echo $link->nodeValue . PHP_EOL;
}

может получить значения узлов a.Если путь более конкретен, используйте xpath.

https://3v4l.org/b1lKZ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...