PHP Simple HTML DOM Parser как разложить по переменным?
Использую библиотеку PHP Simple HTML DOM Parser. Хочу получить массив данных. С ссылки https://auto.ru/cars/used/sale/mercedes/e_klasse/1098608450-580b4296/ Делаю так:
<?php
$html = file_get_html('https://auto.ru/cars/used/sale/mercedes/e_klasse/1098608450-580b4296/');
foreach($html->find('span[class=CardInfo__cell]') as $card) {
echo $card->plaintext . '<br>';
}
?>
В итоге получаю текст (тип string)
год выпуска 2015 Пробег 78 568 км Кузов седан Цвет белый Двигатель 2.0 л / 184 л.с. / Бензин Налог 9 200 ₽ / год Коробка автоматическая Привод задний Руль Левый Состояние Не требует ремонта Владельцы 3 или более ПТС Дубликат Таможня Растаможен VIN WDD************** Госномер ******|750
Я хочу поместить каждую строчку в переменную или массив. То есть, $year = 2015, $probeg = 78 568 и так далее. То есть разделить каждое свойство авто в отдельную переменную. Подскажите пожалуйста как это сделать, если данные приходят как string? как правильно разложить это всё в переменные ? Заранее спасибо!
Ответы (1 шт):
Вы несколько некорректно подходите к решению задачи. Необходимо взять не plaintext всей этой ерунды, а найти сам список .CardInfo. Далее у каждой строки списка есть соответствующий класс, по которому вы элементарно разложите все свойства.
что-то вроде такого
$opts = ['year', 'kmAge'];
$data = [];
$ul = $html->find(".CardInfo",0);
foreach($opts as $field){
$data[$field] = $ul->find(".CardInfo__row_$field", 0)
->find(".CardInfo__cell", 1)
->plaintext;
}
print_r($data);