2017-01-26 6 views
-2

У меня есть содержание HTML, который имеет фрагмент URL выглядит следующим образом:PHP preg_match_all для конкретного значения

<a href="#/news/0294928/what-a-great-idea"> 

Что мне нужно сделать, это просто, чтобы захватить число, затем #/Новости/

Любая хорошая идея? Я попытался следующие, но он получает только 4 результаты для меня

preg_match_all('/<a href="#\/news\/(.+)\/?\"?>/i', $html_cont, $matches); 

Пожалуйста, помогите мне, Спасибо.

+1

Сначала вы извлекаете атрибут href с помощью XPath, затем вы вставляете результат с помощью '/', и вы берете номер позиции 2. –

+0

Захватите с помощью javascript window.location.href, а затем разделите на /. Оттуда это третий элемент в результирующем массиве. –

+0

Есть много других

ответ

0

Фрагмент моего комментария:

$dom = new DOMDocument; 
libxml_use_internal_errors(true); 
$dom->loadHTML($yourHTML); 

$xp = new DOMXPath($dom); 
$hrefNodeList = $xp->query('//a/@href[starts-with(., "#/news/")]'); 

foreach ($hrefNodeList as $hrefNode) { 
    echo explode('/', $hrefNode->nodeValue)[2] . PHP_EOL; 
} 
+0

любая идея с preg_match_all()? –

+0

@WilsonBreiner: точная идея, если вы хотите знать, но я избегаю дерьмового кода. –

 Смежные вопросы

  • Нет связанных вопросов^_^