Есть html страничка (к примеру)
<div class = "list">
<div class = "room">
<div class = "user" style = "font-size: 1px;"></div>
<div class = "user" style = "font-size: 2px;"></div>
<div class = "user" style = "font-size: 3px;"></div>
</div>
<div class = "room">
<div class = "user" style = "font-size: 4px;"></div>
<div class = "user" style = "font-size: 5px;"></div>
<div class = "user" style = "font-size: 6px;"></div>
</div>
</div>
Нужно получить значения всех "style" в массив чтобы выглядело так
array(0=>'font-size: 1px;,font-size: 2px;,font-size: 3px;',1=>'font-size: 4px;,font-size: 5px;,font-size: 6px;')
c помощью phpQuery
У меня получается получить только первое значение из каждого "room"
Регуляркой можно, а лучше скачай библиотеку
https://sourceforge.net/projec ... ldom/
Судя по всему тебе еще много что парсить придется)))
kantry, никогда не занимался парсингом, а тут понадобилось...
PHP Simple HTML DOM Parser и phpQuery как-то ооочень похожи. С первого взгляда...
kantry,
$pq = phpQuery::newDocument($str);
$elem = $pq->find('div.room');
foreach ($elem AS $value) {
$value = pq($value);
$style[] = $value->find('div.user')->attr('style');
}
$tpl->content .= print_r($style);
# kantry (22.07.2017 / 19:35)
Регуляркой можно
Регулярку дольше придётся изучать
Сейчас все эти либы довольно популярны для обработки html и т.п. документов, и мануал даже русскоязычный можно найти )
То есть никто не в курсе)))
ДоХтор, регулярку знаю =)
# OtherWorld (22.07.2017 / 19:55)
То есть никто не в курсе)))
Я точно не в курсе, т.к. не пользовался. Мне проще решать такие задачи с помощью регулярных выражений. Но если не ошибаюсь, наш Макс (Simba) в курсе, как ней пользоваться.
# OtherWorld (22.07.2017 / 19:57)
ДоХтор, регулярку знаю =)
Так и напиши на регулярке )
OtherWorld, такой массив тебе нужен?
Пример (+/-)
array(6) {
[0]=> string(15) "font-size: 1px;"
[1]=> string(15) "font-size: 2px;"
[2]=> string(15) "font-size: 3px;"
[3]=> string(15) "font-size: 4px;"
[4]=> string(15) "font-size: 5px;"
[5]=> string(15) "font-size: 6px;"
}
Если да, то вот пример
regex (+/-)
$str = '<div class = "list">
<div class = "room">
<div class = "user" style = "font-size: 1px;"></div>
<div class = "user" style = "font-size: 2px;"></div>
<div class = "user" style = "font-size: 3px;"></div>
</div>
<div class = "room">
<div class = "user" style = "font-size: 4px;"></div>
<div class = "user" style = "font-size: 5px;"></div>
<div class = "user" style = "font-size: 6px;"></div>
</div>
</div>';
$patt = '~style\s?=\s?"([^"]+)"~';
preg_match_all($patt, $str , $a);
echo '<pre>'; var_dump($a[1]); echo '</pre>';