Как получить все классы из HTML в массив с помощью PHP - PullRequest
1 голос
/ 27 июня 2019

Некоторые вещи кажутся простыми, но этот убивает меня со вчерашнего дня.

У меня есть CSS-файл style.css. Мне удалось проанализировать все содержимое массива.Все хорошо там.

То, что я не могу понять, это то, как получить все классы из HTML-файла, чтобы я мог сравнить его с моим массивом CSS.

Пример мой код выглядит такУ меня в файле только первый тянет.

        preg_match('/class=".*?"/i', $value, $match);
        print_r($match);
(
 [id] => Array
        (
            [0] => idtest

        )
    [class] => Array
        (
            [0] => flex-center
            [1] => position-ref
            [2] => full-height
            [3] => flex-test1
            [4] => flex-test2

        )
)

Ответы [ 2 ]

0 голосов
/ 27 июня 2019

С вашим заданным выражением все в порядке, мы можем добавить группу захвата, и проблема, вероятно, будет решена:

$re = '/class="\s*(.*?)\s*"/s';
$str = '      <div id="idtest" class="flex-center position-ref full-height">
            <div class="flex-test1">
                 <div class="flex-test2">
                 </div>
            </div>
      </div>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

var_dump($matches);

В этом демо выражение объясняется, если выможет быть интересно.

0 голосов
/ 27 июня 2019

Я думаю, вы можете попробовать с jQuery.each () [здесь] https://api.jquery.com/each/, он будет повторять элементы DOM, и вы можете получить класс .. (У меня нет 50 репутации, чтобы поставить это в качестве комментария, так..)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...