【问题标题】:Use PHP to echo whats inside div tags使用 PHP 回显 div 标签内的内容
【发布时间】:2012-11-24 05:13:43
【问题描述】:

我不知道该研究什么或从哪里开始。

我想要做的是使用 PHP 读取 HTML 页面并提取包含在 div 中的原始文本

div是这个

 <div class="thingy">
  test
 </div>

当php执行时,我希望它回显

Test

是否有一个简单的sn-p,或者有人可以发布一个小脚本?

编辑:带有 Div 的 html 页面在另一个网页上。

【问题讨论】:

  • 为什么要用php来做,PHP是服务器端语言,HTML是客户端语言,用javascript就能轻松搞定。
  • 试试这个。 preg_match_all('/
    (.*)/isU',$htmlContent,$text_array);
  • @PankajKhairnar:如果他正在抓取页面,他就无法使用 JS 执行此操作。
  • $url = "页面网址"; $htmlContent = file_get_contents($url);您可以使用 file_get_contents 来获取数据。

标签: php html html-parsing


【解决方案1】:

您要做的是解析 HTML。使用 PHP 自带的 DOM 模块:http://php.net/manual/en/book.dom.php

您不想尝试使用正则表达式来执行此操作。

如果要从文档中删除所有 HTML 标记,请使用 PHP strip_tags() 函数:http://us3.php.net/strip_tags

【讨论】:

  • 我会选择 simpleXML 而不是 DOM,因为它更容易。艰难取决于输入
【解决方案2】:

虽然这可以使用正则表达式完成,但我建议使用 DOM 解析器。我的推荐去SimpleHTML Dom Parser。使用它,你会怎么做你想做的事

$string = "<div class=\"thingy\">test</div>";
$html = str_get_html($string); // create the DOM object
$div = $html->find('div[class=thingy]', 0); // find the first div with a class of 'thingy'
echo $div->plaintext(); // echo the text contents

【讨论】:

    【解决方案3】:

    如果你想解析你的 html,你可以像这样使用它

    <?php
     $str = '<div class="thingy">test</div>';
     echo strip_tags($str);//OUTPUT : test
    ?>
    

    由于您的 html 在其他网页上,因此开始输出缓冲,将该文件包含在您的主 php 脚本中,对其进行所有操作以获取内容。

    【讨论】:

    • 如果 div 位于另一个 url 上的单独 html 页面上,我该怎么做。
    • 如果您想这样做,最好使用javascript在客户端解析您的html,我可以使用javascript方法回答您的问题
    • 我会接受 java 脚本,如果你可以发布一个方法来从 html 页面上刮下 div 不是正在执行的文件的本地页面。
    • 我将在 html 中创建一个示例并发布作为答案,给我一些时间
    • 就像我说的... DIV 不在同一个页面上,我想用 div 抓取页面,然后阅读它... ThingyID 是从哪里来的?页面上没有。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签