PHP如何使用Class获得价值

时间:2019-07-08 08:33:12

标签: php codeigniter

我制作了一个带有描述的表单,在该描述中有一个名为“ services-list”的列表,我需要使用“ services-list”类获取该值

这是有关如何获得整个说明部分的代码

<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 个答案:

答案 0 :(得分:1)

假设您有一个$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>