PHPHtmlParser\Selector::parseSelectorString PHP Method

parseSelectorString() protected method

Parses the selector string
protected parseSelectorString ( string $selector )
$selector string
    protected function parseSelectorString($selector)
    {
        $matches = [];
        preg_match_all($this->pattern, trim($selector) . ' ', $matches, PREG_SET_ORDER);
        // skip tbody
        $result = [];
        foreach ($matches as $match) {
            // default values
            $tag = strtolower(trim($match[1]));
            $operator = '=';
            $key = null;
            $value = null;
            $noKey = false;
            $alterNext = false;
            // check for elements that alter the behavior of the next element
            if ($tag == '>') {
                $alterNext = true;
            }
            // check for id selector
            if (!empty($match[2])) {
                $key = 'id';
                $value = $match[2];
            }
            // check for class selector
            if (!empty($match[3])) {
                $key = 'class';
                $value = $match[3];
            }
            // and final attribute selector
            if (!empty($match[4])) {
                $key = strtolower($match[4]);
            }
            if (!empty($match[5])) {
                $operator = $match[5];
            }
            if (!empty($match[6])) {
                $value = $match[6];
            }
            // check for elements that do not have a specified attribute
            if (isset($key[0]) && $key[0] == '!') {
                $key = substr($key, 1);
                $noKey = true;
            }
            $result[] = ['tag' => $tag, 'key' => $key, 'value' => $value, 'operator' => $operator, 'noKey' => $noKey, 'alterNext' => $alterNext];
            if (trim($match[7]) == ',') {
                $this->selectors[] = $result;
                $result = [];
            }
        }
        // save last results
        if (count($result) > 0) {
            $this->selectors[] = $result;
        }
    }