【问题标题】:Php get htm div content in arrayphp获取数组中的html div内容
【发布时间】:2015-03-20 05:37:44
【问题描述】:

我想显示包含多个具有相同类名和不同 id 名的 div 的 HTML 内容。我想将内容放入如下数组形式:

HTML 内容:

<div id='divcont'>
    <div class='abc'>
        <P class='first'>test1</p>
    </div>
    <div class='abc'>
        <P class='first_sec'>test2</p>
    </div>
</div>

结果:

Array
(
    [0] => <P class='first'>test1</p>
    [1] => <P class='first_sec'>test2</p>
)

【问题讨论】:

  • 到目前为止您尝试过什么?请出示您的代码。此外,这是您需要分析的唯一 HTML 吗?如果不是,您需要分析的输入规则是什么?
  • 不要使用正则表达式解析 HTML。使用适当的 HTML 解析模块。 您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。请参阅htmlparsing.com/phpthis SO thread,了解如何使用已经编写、测试和调试过的 PHP 模块正确解析 HTML。
  • 是的,你能检查一下上面的问题吗,

标签: php regex html-parsing


【解决方案1】:

您可以使用正确的tool 来完成这项简单的任务。

$doc = DOMDocument::loadHTML("
<div id='divcont'>
    <div class='abc'>
        test1
    </div>
    <div class='abc'>
        test2
    </div>
</div>
");

$xpath = new DOMXPath($doc);
$nodes = $xpath->query('//div[@class="abc"]');

foreach ($nodes as $node) {
   $data[] = trim($node->nodeValue);
}

print_r($data);

输出

Array
(
    [0] => test1
    [1] => test2
)

【讨论】:

  • 您好,谢谢,但我无法加载 html 标签,请您检查一下问题。
猜你喜欢
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
相关资源
最近更新 更多