парсинг селекторов phpQuery

253
19 декабря 2016, 19:37
<div class="artvalue available_2">2</div>
<div class="artvalue">
    <select name="ctl00$pagecontext$ordercontrol1$ddlQuantity" id="ctl00_pagecontext_ordercontrol1_ddlQuantity" class="ddlquantity"><option value="Oddziały:  TAK">Oddziały:  TAK</option>
    <option value="Centrala: TAK">Centrala: TAK</option>
    <option value="Magazyn Rybnik: >5" disabled="" class="warehouse-item">Magazyn Rybnik: &gt;5</option>
    <option value="filia Bielsko-Biała: 3">filia Bielsko-Biała: 3</option>
    <option value="filia Jastrzębie: 3">filia Jastrzębie: 3</option>
    <option value="filia Katowice: 2">filia Katowice: 2</option>
    <option value="filia Kielce: 1">filia Kielce: 1</option>
    <option value="filia Kraków: 1">filia Kraków: 1</option>
    <option value="filia Krosno: 1">filia Krosno: 1</option>
    <option value="filia Łódź: 0">filia Łódź: 0</option>
    <option value="filia Nowy Sącz: 3">filia Nowy Sącz: 3</option>
    <option value="filia Nowy Targ: 3">filia Nowy Targ: 3</option>
    <option value="filia Ostrów Maz.: 2">filia Ostrów Maz.: 2</option>
    <option value="filia Strzelce Opolskie: 1">filia Strzelce Opolskie: 1</option>
    <option value="filia Warszawa: 4">filia Warszawa: 4</option>
    <option value="filia Wieluń: 3">filia Wieluń: 3</option>
    <option value="Magazyn Główny: TAK">Magazyn Główny: TAK</option>
    <option value="Wrocław biuro handlowe: 0">Wrocław biuro handlowe: 0</option>
    </select>
</div>

Оригинал кода

Как спарсить первую цифру "2" и селект со значением value="Centrala: TAK?

Answer 1

Вам можно воспользоваться утилитой под названием Simple HTML DOM Parser

Она позволяет обращаться к элементам html страницы через селекторы, аналогично css и jquery. Что-то похоже у них есть.

В итоге, подключив себе, код может быть к примеру такой:

require "simple_html_dom.php";
$html = str_get_html('<div class="artvalue available_2">2</div>
<div class="artvalue">
    <select name="ctl00$pagecontext$ordercontrol1$ddlQuantity" id="ctl00_pagecontext_ordercontrol1_ddlQuantity" class="ddlquantity"><option value="Oddziały:  TAK">Oddziały:  TAK</option>
    <option value="Centrala: TAK">Centrala: TAK</option>
    <option value="Magazyn Rybnik: >5" disabled="" class="warehouse-item">Magazyn Rybnik: &gt;5</option>
    <option value="filia Bielsko-Biała: 3">filia Bielsko-Biała: 3</option>
    <option value="filia Jastrzębie: 3">filia Jastrzębie: 3</option>
    <option value="filia Katowice: 2">filia Katowice: 2</option>
    <option value="filia Kielce: 1">filia Kielce: 1</option>
    <option value="filia Kraków: 1">filia Kraków: 1</option>
    <option value="filia Krosno: 1">filia Krosno: 1</option>
    <option value="filia Łódź: 0">filia Łódź: 0</option>
    <option value="filia Nowy Sącz: 3">filia Nowy Sącz: 3</option>
    <option value="filia Nowy Targ: 3">filia Nowy Targ: 3</option>
    <option value="filia Ostrów Maz.: 2">filia Ostrów Maz.: 2</option>
    <option value="filia Strzelce Opolskie: 1">filia Strzelce Opolskie: 1</option>
    <option value="filia Warszawa: 4">filia Warszawa: 4</option>
    <option value="filia Wieluń: 3">filia Wieluń: 3</option>
    <option value="Magazyn Główny: TAK">Magazyn Główny: TAK</option>
    <option value="Wrocław biuro handlowe: 0">Wrocław biuro handlowe: 0</option>
    </select>
</div>');
echo $html->find("div.available_2", 0)->plaintext;
echo $html->find("select", 0)->find("option[value=Centrala: TAK]", 0)->plaintext;

Как мы видим, я просто обратился к элементу div с классом available_2 и взял у него текст из узла. С селектом поступил аналогично.

Подробные инструкции как парсером пользоваться можно найти в его же документации.

READ ALSO
Eloquent метод save не работает

Eloquent метод save не работает

На удаленном сервере не работает метод saveМетодом дебага, обнаружил, что в модели не создается идентификатор

168
Не все песни прогружаются на сайте

Не все песни прогружаются на сайте

Закинул на сайт несколько песен, но почему-то прогружаются не всеПрогрузилось 5, остальные грузятся только тогда, когда включаешь какую-то...

256
Как запустить entity

Как запустить entity

Какая команда на выполнение, чтобы создалась таблица в базе?

178
Yii2 masked input

Yii2 masked input

Использую masked input yii2, поставил вот такое правило:

266