微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 正则表达式获取DIV标签中的内容

您好,感谢您查看我的问题.
我需要从HTML片段中获取一些数据.
这个源是一个受信任的/结构化的,所以我认为在这个HTML中使用正则表达式是可以的.我认为Dom和PHP中的其他高级功能是一种矫枉过正.

以下是HTML代码段的格式.

<div id="d-container">
  <div id="row-custom_1">
     <div class="label">Type</div>
     <div class="content">John Smith</div>
     <div class="clear"></div>
  </div>
</div>

在上面,请注意前2个DIV标签设置了ID.可能有几个row-custom_1像div标签,所以我需要逃避它们.

我的正则表达式实际上非常差,所以我期待你的帮助,从上面的html片段中抓住约翰史密斯.

它可能是这样的

<div * id="row-custom_1" * > * <div * class="content" * >GRAB THIS </div>

但我不知道如何在正则表达式中做到这一点.
约翰史密斯部分肯定不会包含任何HTML.它来自一个值得信赖的来源,它会删除所有html并以上述格式提供数据.

我可以理解正则表达式无论如何都不是处理HTML的好主意.
非常感谢你的帮助.

30分钟后编辑:
很多很棒的人建议使用HTML解析器,所以我做了;像魅力一样工作.因此,如果有人带着类似的问题来到这里,作为愚蠢的问题作者,我建议使用DOM来完成工作.

解决方法:

这是一个简单的基于DOM的代码,用于从给定的HTML中获取您的值:

$html = <<< EOF
<div id="d-container">
  <div id="row-custom_1">
     <div class="label">Type</div>
     <div class="content">John Smith</div>
     <div class="clear"></div>
  </div>
</div>
EOF;
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html); // loads your html
$xpath = new DOMXPath($doc);
$value = $xpath->evaluate("string(//div[@id='d-container']
         /div[@id='row-custom_1']/div[@class='content']/text())"); 
echo "User Name: [$value]\n"; // prints your user name

OUTPUT:

User Name: [John Smith]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐