Berlioz HTML SELECTER
Berlioz HTML Selecter - это библиотека PHP для выполнения запросов на файлах HTML с селекторами CSS, такими как jQuery на DOM.
Установка
Композитор
Вы можете установить селектор Berlioz HTML с композитором, это рекомендуемая установка.
$ composer require berlioz/html-selector
Зависимости
- PHP ^8.0
- Библиотеки PHP:
- дом
- libxml
- MBString
- simplexml
Использование
Загрузить HTML
Вы можете легко загрузить строку HTML или файл со статической функцией HtmlSelector::query() . Для файлов используйте второй параметр contentsIsFile метода.
$ htmlSelector = new Berlioz HtmlSelector HtmlSelector ();
$ query = $ htmlSelector -> query ( ' <html><body>...</body></html> ' );
$ query = $ htmlSelector -> query ( ' path-of-my-file/file.html ' , contentsIsFile: true );
$ query = $ htmlSelector -> query ( new SimpleXMLElement ( /*...*/ ));
Загрузите от ResponseInterface
HtmlSelector::queryFromResponse() разрешить загружать HTML тела ответа.
$ htmlSelector = new Berlioz HtmlSelector HtmlSelector ();
/** @var PsrHttpMessageResponseInterface $response */
$ query = $ htmlSelector -> queryFromResponse ( $ response );
Сделать запрос
Очень просто запрашивать строку HTML с селектором, таким как jQuery .
/** @var BerliozHtmlSelectorQueryQuery $query */
$ query = $ query -> find ( ' body > .wrapper h2 ' );
$ query = $ query -> filter ( ' :first ' );
Селекторы
CSS простые селекторы
- Тип : выбор элементов с их типом.
- #ID : выбор элемента с его идентификатором.
- .class : выбор элементов с их классом.
- Атрибуты выборы.
- [атрибут] : с атрибутом 'атрибутом'.
- [attribute = foo] : значение атрибута равно «foo».
- [attribute^= foo] : значение атрибута начинается с 'foo'.
- [атрибут $ = foo] : значение атрибута заканчивается «foo».
- [attribute = foo] *: значение атрибута содержит «foo».
- [attribute! = foo] : значение атрибута разных из «foo».
- [attribute ~ = foo] : значение атрибута содержит слово «foo».
- [атрибут | = foo] : значение атрибута содержит префикс 'foo'.
CSS Assendants, потомки, мультипликации
- Селектор селектор или селектор >> Селектор : весь селектор потомков.
- Селектор > Селектор : Прямой селектор потомков (только дети).
- Селектор ~ Селектор : Селектор братьев и сестер.
- Селектор , селектор : несколько селекторов.
CSS Pseudo Clasess
- : Любой (селектор, селектор) : только элементы, приведенные в аргументах.
- : Lonate-Link : только элементы типа
<a> , <area> и <link> , с атрибутом [href] . - : blank : только элементы без ребенка, и без текста (кроме пробелов).
- : Проверено : только элементы с атрибутом
[checked] . - : dir : только элементы с указанным текстом (по умолчанию: LTR).
- : Отключено : только элементы типа
<button> , <input> , <optgroup> , <select> или <textarea> с атрибутом [disabled] . - : пустые : только элементы без ребенка.
- : включено : только элементы типа
<button> , <input> , <optgroup> , <option> , <select> , <textarea> , <menuitem> или <fieldset> без [disabled] атрибута. - : первым : только первый результат полного отбора.
- : Первый ребенок : только первые дети в своих родителях.
- : Первый тип : только первые тип их родителей.
- : есть (селектор, селектор) : только элементы, которые действуют дочерние селекторы.
- : lang (x) : только элементы с атрибутом
[lang] префикс, или равны заданему значению. - : Последний ребенок : только длится у их родителей.
- : Последний тип : только длится тип их родителей.
- : Не (селектор, селектор) : фильтр 'не'.
- : nth-child () : n элементы в результате селектора.
- : nth-last-child () : n элементы в результате селектора, начинайте в конце списка.
- : nth-of-type () : n элементы данного типа в результате селектора.
- : nth-last-of-type () : n элементы заданного типа в результате селектора, начинайте в конце списка.
- : только ребенок : только элементы, которые только ребенка в родителе.
- : только типа : только элементы, которые являются только ребенком типа в родителе.
- : Необязательно () : только входные элементы без
[required] атрибута. - : read-only () : только элементы, которые пользователь не может редактировать.
- : read-write () : только элементы с редактируемой собственностью.
- : обязательно () : только элементы с
[required] атрибутом. - : root () : получить корневой элемент.
Дополнительные псевдо -классы CSS (не в спецификациях CSS) из библиотеки jQuery
- : Кнопка : только элементы типа
<button> Без значения атрибута [type=submit] или <input type="button"> . - : флажок : только элементы с атрибутом
[type=checkbox] . - : содержит (x) : только элементы, которые содержат данный текст.
- : Уравнение (x) : только результат с указанным индексом (индекс запускается до 0).
- : даже : только приводит к выбору.
- : file : только элементы с атрибутом
[type=file] . - : gt (x) : только результат с индексом, превышающим указанный индекс (индекс запускается до 0).
- : gte : результат только с индексом, превышающим или равный указанному индексу (индекс запускается до 0).
- : Заголовок : только элементы заголовка, как
<h1> , <h2> ... - : изображение : только элементы с атрибутом
[type=image] . - : input : только элементы типа
<input> , <textarea> , <select> или <button> . - : Последнее : только последний результат полного отбора.
- : LT : только результат с индексной кожей, чем указанный индекс (индекс запускается до 0).
- : LTE : результат только с индексной кожей, чем или равен указанным индексу (индекс запускается до 0).
- : ODD : только нечетные результаты в выборе.
- : parent : только элементы с одним ребенком или несколькими.
- : пароль : только элементы с атрибутом
[type=password] . - : Радио : только элементы с атрибутом
[type=radio] . - : Сброс : только элементы с атрибутом
[type=reset] . - : выбрано : только элементы типа
<option> с атрибутом [selected] . - : Отправить : только элементы типа
<button> или <input> с атрибутом [type=submit] . - : text : только элементы типа
<input> с атрибутом [type=text] или без [type] атрибут.
Дополнительные псевдо -классы CSS (не в спецификациях CSS)
- : count (x) : только элементы, которые являются x детей в родителях, используются в : имеет (селектор) псевдо -класс.
Полный пример селекторов
select > option:selected
div#myId.class1.class2[name1=value1][name2=value2]:even:first
Функции
Функции по умолчанию
Некоторые функции по умолчанию доступны в объекте запроса для взаимодействия с результатами. Функции должны иметь тот же результат, что и их аналоги на jQuery.
- attr (имя) : получить значение атрибута
- attr (имя, значение) : установить значение атрибута
- Дети () : Получите детей элементов в результате.
- count () : подсчитайте количество элементов в результате запроса.
- Data (nameofdata) : Получить значение данных (имя с синтаксисом Camelcase без префикса Data- ').
- Фильтр (селектор) : элементы фильтра в результате.
- Найти (селектор) : найти селектор в элементах в результате.
- Получить (i) : получить элемент DOM в результате.
- hasclass (class_name) : знайте, дает ли минимум один из элементов в результате.
- html () : получить HTML первого элемента в результате.
- Индекс (селектор) : Получите индекс данного селектора в элементах результатов.
- IS (SELECTER) : Знайте, является ли селектор действителен наименьшим элементом в результате.
- Isset (i) : return boolean, чтобы узнать, существует ли ключ элемента в результате.
- Далее (селектор) : Получить следующий элемент после каждого элемента в результате.
- Nextall (SELECTER) : Получите все следующие элементы после каждого элемента в результате.
- НЕ (Селектор) : фильтр элементов в результате.
- Parent () : Получите прямой родитель текущего результата выбора.
- Родители (селектор) : Получите всех родителей текущего результата отбора.
- Prev (Selector) : Получить предварительный элемент после каждого элемента в результате.
- Prevall (Selector) : Получите все предварительные элементы после каждого элемента в результате.
- PROP (имя) : Получить логическое значение свойства атрибута, используемого, например, для атрибута
disabled . - PROP (имя, значение) : установите свойства логического значения атрибута, используемого, например, для атрибута
disabled . - serialize () : сериализовать входные значения формы. Вернуть строку.
- serializearray () : сериализовать входные значения формы. Вернуть массив.
- Text () : Получите текст каждого элемента, объединенного.
- val () : получить значение элемента формы.