PHP Как получить значение с помощью класса - PullRequest
0 голосов
/ 08 июля 2019

Я сделал форму с описанием, и внутри этого описания есть список с именем «список служб», и мне нужно получить значение с помощью класса «список служб»

вот код получения полного раздела описания

<p class="card"><?php echo substr(strip_tags($row->description), 0, 200); ?>...</p>

описание пришло из формы для = "description" и сохранено в базе данных.

в этом коде есть раздел, который имеет класс «список служб» и перечисляет все службы, как я могу вызвать этот конкретный раздел для печати?

Я имею в виду код, подобный этому

<?php echo substr(strip_tags($row->description .'.services-list'), 0, 200); ?>

но не уверен с этим кодом.

1 Ответ

1 голос
/ 08 июля 2019

Предполагается, что у вас есть $row->description объект, содержащий этот текст:

$row = (object) [ 'description' => '
<div>
    <li class="other-class">Service A</li>
    <li class="services-list">Service B</li>
    <li class="services-list">Service C</li>
    <li class="services-list">Service D</li>
</div>
'];

Вы можете использовать DOMDocument, чтобы получить все элементы класса services-list:

$doc = new DOMDocument();
$doc->loadHTML($row->description);   

$xpath = new DomXPath($doc);

$nodeList = $xpath->query("//li[@class='services-list']");
$node = $nodeList->item(1);

$service_list = [];
foreach ($nodeList as $i => $val){
    if (!empty($val->nodeValue)) {
        array_push($service_list, $val->nodeValue);
    }
}
$service_list = implode($service_list, ', '); // separate each item by comma

// To check the result:
echo "<p>" . $service_list . "</p>";

Вывод будет:

<p>Service B, Service C, Service D</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...