Работа с phpQuery

845
.
# OtherWorld (22.07.2017 / 22:10)
Решил вопрос с помощью нескольких циклов и многомерного массива
Сегодня расковырял твою задачу на чистых регулярках, с группировкой по массивам - у меня код получился менее затратный
regex (+/-)
<?php

$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 = '~
    (?:
        (?<=<div\sclass\s=\s"room">)
        (?:.*)
        (?=</div>(?:\s*)<div\sclass\s=\s"room">)
        |
        (?<=<div\sclass\s=\s"room">)
        (?:.*)
        (?=</div>(?:\s*)</div>)
    )
~sx';

if (preg_match_all($patt, $str , $a)) {
    $out = [];
    
    foreach ($a[0] as $item) {
        !preg_match_all('~style\s?=\s?"([^"]+)"~', $item, $arr) 
            ?: $out[] = join(',', $arr[1]);
    }
     
    echo '<pre>'; print_r($out); echo '</pre>';
}

/* Вывод:
array(
  [0] => font-size: 1px;,font-size: 2px;,font-size: 3px;
  [1] => font-size: 4px;,font-size: 5px;,font-size: 6px;
)
*/
.

ДоХтор, Ну это я за пример спрашивал, чтобы разобраться в phpQuery. Но всё равно спасибо за "отзывы".

.
# OtherWorld (24.07.2017 / 11:38)
ДоХтор, Ну это я за пример спрашивал, чтобы разобраться в phpQuery. Но всё равно спасибо за "отзывы".
Да так-то не за что. Я просто хотел понять, можно ли обойтись в решении без использования сторонних библиотек.
.
(\/)____o_O____(\/)

OtherWorld, в любом случае надо работать с ДОМ деревом

Всего: 24