Neverland
Есть html код, в котором много ссылок
Подскажите регулярное выражение, для парсинга всех ссылок в один массив в виде:
<a href="link1">text1</a>
<a href="link2">text2</a>
<a href="link3">text3</a>
...
shar
Код:
if ( preg_match_all( '@<a href="([^"]+)">([^<>]+)</a>@is', $html, $items, PREG_SET_ORDER ) ) {
var_dump( $items );
} else {
echo 'hernya kakaya-to';
}
Neverland
shar писал:
Код:
if ( preg_match_all( '@<a href="([^"]+)">([^<>]+)</a>@is', $html, $items, PREG_SET_ORDER ) ) {
var_dump( $items );
} else {
echo 'hernya kakaya-to';
}
Большое спасибо! то что надо!
Alexandur
Пацаны рекомендуют дом.
$src = '���� html код, в ко�о�ом много ���лок
�од�кажи�е �ег�л��ное в��ажение, дл� па��инга в�е� ���лок в один ма��ив в виде:
<a href="link1">text1</a>
<a href="link2">text2</a>
<a href="link3">text3</a>
...';
$dom = new DomDocument();
$dom->loadHTML($src);
$titles = $dom->getElementsByTagName('a');
echo $titles->item(0)->nodeValue;
echo $titles->item(1)->nodeValue;
echo $titles->item(2)->nodeValue;
// or
foreach($titles as $val)
{
echo $val->nodeValue;
}
Ailk
дом не всегда удобен. особенно хуев, если нет параметров у тегов, типа ида или класса. На ливеинтернет например я заебался через дом парсить страницы где табличные теги ваще без опознавательных знаков.
Alexandur
Так их и регуляркой не очень попарсишь.
А можно ещё с xpath, там вложенные теги можно писать.
Кстати,
Neverland: там вместо nodeValue нужно getAttribute('href') а то он текст ссылок, а не саму берёт.