【问题标题】:Get content of multiple div tags with same class name获取具有相同类名的多个div标签的内容
【发布时间】:2015-01-08 18:11:03
【问题描述】:

我读了这篇文章 - Get DIV content from external Website 。我获得了具有file_get_contents() 函数的网站来源,我必须从中提取两个具有相同类名的 div 的内容。

我有非常相似的问题,但是 div 具有相同的类名。例如。我有这样的代码:

<div class="baaa">
Some conete
</div>
<div class="baaa">
Second Content
</div>

我想同时获取这两个 div 的内容。文章中接受的解决方案我只链接了一个支持。我的预期结果是这样的数组:

$divs[0] = "Some conete"
$divs[1] = "Second Content"

请给我建议该怎么做。我读过 DOMDocument 类,但不知道如何使用它。

【问题讨论】:

  • 使用 JQuery 中的每个函数来获取所有 div 标签的值。 `$(".baaa").each(function(){});
  • 尝试使用preg_match_all()
  • @bcesars 我需要使用 PHP
  • @violator667 你能解释一下吗?

标签: php html


【解决方案1】:

我使用了简单的 html dom 解析器,你的内容可以被提取为

$html = file_get_html('your html file link');
$k=1;
foreach($html->find('div.baaa') as $e){
        $divs[$k]=$e;
        $k++;
    }
echo $divs[1]."<br>";
echo $divs[2];

【讨论】:

    【解决方案2】:

    您可以使用 XPath。 XPath 是一种用于 XML 的查询语言。有支持 Xpath 的 PHP 函数。 对你来说,例子可能是:

    文件test.html

    <html>
    <body>
    <div class="baaa">
    Some conete
    </div>
    <div class="baaa">
    Second Content
    </div>
    </body>
    </html>
    

    提取具有“baaa”类的div内容的php代码

    $xml = simplexml_load_file('test.html');
    $data = $xml->xpath('//div[@class="baaa"]/text()');
    foreach($data as $row) {
        printf($row);
    }
    

    生成以下输出:

    Some conete
    Second Content
    

    如果您需要更复杂的搜索或分析,请查找 XPath 教程。

    【讨论】:

      【解决方案3】:

      用你的数据试试:

      $file_contents = file_get_contents('http://address.com');
      preg_match_all('/<div class=\"baaa\">(.*?)<\/div>/s',$file_contents,$matches);
      print_r($matches);
      

      顺便说一句:Polska rządzi :)

      【讨论】:

      • 致 prawda - Polska rządzi :D
      【解决方案4】:
      <script type="text/javascript">
      $(document).ready(function(){
          $('.baaa').each(function(){
              alert($(this).text());
          });
      });
      </script>
      
      <div class="baaa">
      Some conete
      </div>
      <div class="baaa">
      Second Content
      </div>
      

      【讨论】:

      • 他说需要用PHP
      猜你喜欢
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-11-24
      • 1970-01-01
      相关资源
      最近更新 更多