Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Подскажите по регулярному выражению php
цитата
21/01/15 в 21:50
 Neverland
Есть html код, в котором много ссылок
Подскажите регулярное выражение, для парсинга всех ссылок в один массив в виде:
<a href="link1">text1</a>
<a href="link2">text2</a>
<a href="link3">text3</a>
...
цитата
21/01/15 в 23:49
 shar
Код:
if ( preg_match_all( '@<a href="([^"]+)">([^<>]+)</a>@is', $html, $items, PREG_SET_ORDER ) ) {

   var_dump( $items );

} else {
   
   echo 'hernya kakaya-to';

}
цитата
22/01/15 в 11:34
 Neverland
shar писал:
Код:
if ( preg_match_all( '@<a href="([^"]+)">([^<>]+)</a>@is', $html, $items, PREG_SET_ORDER ) ) {

   var_dump( $items );

} else {
   
   echo 'hernya kakaya-to';

}



Большое спасибо! то что надо!
цитата
22/01/15 в 13:26
 Alexandur
Пацаны рекомендуют дом.

$src = '&#208;&#65533;&#209;&#65533;&#209;&#65533;&#209;&#65533; html &#208;&#186;&#208;&#190;&#208;&#180;, &#208;&#178; &#208;&#186;&#208;&#190;&#209;&#65533;&#208;&#190;&#209;&#65533;&#208;&#190;&#208;&#188; &#208;&#188;&#208;&#189;&#208;&#190;&#208;&#179;&#208;&#190; &#209;&#65533;&#209;&#65533;&#209;&#65533;&#208;»&#208;&#190;&#208;&#186;
&#208;&#65533;&#208;&#190;&#208;&#180;&#209;&#65533;&#208;&#186;&#208;°&#208;¶&#208;&#184;&#209;&#65533;&#208;µ &#209;&#65533;&#208;µ&#208;&#179;&#209;&#65533;&#208;»&#209;&#65533;&#209;&#65533;&#208;&#189;&#208;&#190;&#208;µ &#208;&#178;&#209;&#65533;&#209;&#65533;&#208;°&#208;¶&#208;µ&#208;&#189;&#208;&#184;&#208;µ, &#208;&#180;&#208;»&#209;&#65533; &#208;&#191;&#208;°&#209;&#65533;&#209;&#65533;&#208;&#184;&#208;&#189;&#208;&#179;&#208;° &#208;&#178;&#209;&#65533;&#208;µ&#209;&#65533; &#209;&#65533;&#209;&#65533;&#209;&#65533;&#208;»&#208;&#190;&#208;&#186; &#208;&#178; &#208;&#190;&#208;&#180;&#208;&#184;&#208;&#189; &#208;&#188;&#208;°&#209;&#65533;&#209;&#65533;&#208;&#184;&#208;&#178; &#208;&#178; &#208;&#178;&#208;&#184;&#208;&#180;&#208;µ:
<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;
}
цитата
22/01/15 в 21:12
 Ailk
дом не всегда удобен. особенно хуев, если нет параметров у тегов, типа ида или класса. На ливеинтернет например я заебался через дом парсить страницы где табличные теги ваще без опознавательных знаков.
цитата
22/01/15 в 23:06
 Alexandur
Так их и регуляркой не очень попарсишь.

А можно ещё с xpath, там вложенные теги можно писать.

Кстати, Neverland: там вместо nodeValue нужно getAttribute('href') а то он текст ссылок, а не саму берёт.
цитата
30/01/15 в 16:44
 Defolt
PHP Simple HTML DOM с хорошим мануалом.
цитата
30/01/15 в 19:58
 Ailk
накуй они нужны эти надстройки на DOM, и так вполне юзабельно.


Эта страница в полной версии