【发布时间】:2014-05-02 16:21:36
【问题描述】:
我正在寻找一种使用 php 查找具有特定 ID 的 html div 的方法
<?php
$regex = "<div+[a-zA-Z0-9._-\"]+id=\"";
$string = '<html><body><div style="rubbish" id="man"></body></html>';
preg_match($regex, $string, $matches, PREG_OFFSET_CAPTURE);
$var_export = $matches;
$var = $var_export[1][1];
echo substr($string, $var, 3);
?>
我知道现在这是一堆垃圾,但我无法完全理解正则表达式。
【问题讨论】:
-
不要使用正则表达式解析 HTML。使用适当的 HTML 解析模块。 您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。请参阅htmlparsing.com/php 或this SO thread,了解如何使用已经编写、测试和调试过的 PHP 模块正确解析 HTML。
-
你想匹配什么,预期的结果是什么?
-
div
man没有结束标签,对吗?
标签: php regex html-parsing