§ Код

Иногда очень хочется получить парные теги с учетом вложенности, и данный код может в этом серьезно помочь:
function get_pair_tag($q, $tag = 'table') {

    $out = [];
    if (preg_match_all('~</?'.$tag.'[^>]*>~is', $q, $cp, PREG_PATTERN_ORDER)) {

        $otag = '';
        $open = $start = $topen = 0;

        foreach ($cp[0] as $x) {

            $length = strlen($x);
            $start  = strpos($q, $x, $start) + $length;

            if ($x[1] == '/') {
                $open--;
                if ($open == 0) $out[] = [$otag, substr($q, $topen, $start - $topen - $length)];
            } else {
                if ($open == 0) { $topen = $start; $otag = $x; }
                $open++;
            }
        }
    }

    return $out;
}
14 янв, 2021
© 2007-2022 Сидел галимый блин