Для аргумента so позволяет взять парсер HTML.
Я читал, что сначала он все токенизирует, а затем анализирует его.
Что означает токенизация?
Анализирует ли каждый анализатор каждый символ, создавая многомерный массив для хранения структуры?
Например, читает ли он <
, а затем начинает захватывать элемент, а затем, когда он встречает закрытие >
(вне атрибута), он куда-то помещается в стек массива?
Меня интересует ради знания (мне любопытно).
Если бы я прочитал источник чего-то вроде HTML Purifier, это даст мне хорошее представление о том, как анализируется HTML?