从页面上的每个嵌套 div 中剥离并获取文本内容

Strip and fetch text content from each nested div on a page

我从 URL 那里得到了一个 HTML。我想要实现的是只获取 div 中的纯文本内容。任何想法是否可以实现。 结构将类似于此

<div class="first">
  <div class="second">
     Some content inside second div
    <div class="third">
      Some more content inside third div
    </div>
  </div>
</div>

当我提取内容时,我想在类似这样的数组中获取纯文本内容

Array(
 [first]=>
 [second]=>Some content inside second div
 [third]=>Some more content inside third div
);

我正在尝试使用 strip_tags 来实现此目的,但不知何故,我对将其拆分并将其添加到数组感到困惑。任何可能有任何想法的人请帮助。

<?php
function clearArray($arr) {
    if(is_array($arr)) {
        foreach($arr as $element) {
            $cont=trim($element); //make sure to have cr/lf parts removed (difference between line seperator)
            if(!empty($cont)) {
                $newArray[]=$cont;
            }
        }
        return $newArray;
    }
    return false;
}
$content='<div class="first">
  <div class="second">
     Some content inside second div
    <div class="third">
      Some more content inside third div
    </div>
  </div>
</div>';
$strippedContent=strip_tags($content);
$content=explode("\n", $strippedContent);
$content=clearArray($content);
print_r($content);

这将输出:

Array ( [0] => Some content inside second div [1] => Some more content inside third div )

如果您从外国页面检索此信息,我强烈建议您使用 DOMDocument 和 xpath 来获取元素。