从HTML读取属性值

时间:2010-12-05 14:06:38

标签: php html-parsing

我将HTML存储在一个字符串中。标记包含名为 initval endval 的表单input字段,它们是我需要的value属性值。如何从此字符串标记中获取它们?

<form id="compute">
   <input type="hidden" name="initval" value="tal:00far" />
   <input type="hidden" name="endval" value="utl:80er" />
</form>

3 个答案:

答案 0 :(得分:3)

假设结构非常可靠,请尝试以下方法:

$htmlCode = "...";
$matches = array();

if (preg_match_all('/name="(initval|endval)"\s+value="([^"]+)"/', $htmlCode, $matches)) {
    $formValues = array_combine($matches[1], $matches[2]);
} else {
   // error
}

这假定namevalue属性之间只有空格,如果不同,您需要进行一些小改动。 preg_match_all()返回一个数组,其中包含[0]处的整个正则表达式匹配,然后各个组匹配其对应的位置[1]&amp; [2],数组合并将一个作为键,一个作为值并将它们放在一起,这样您就可以通过关联查找来获得结果。

答案 1 :(得分:0)

如果我的问题是对的, 在HTML中

<form id="compute" action="somefile.php" method="GET">
  <input type="hidden" name="initval" value="tal:00far" />
  <input type="hidden" name="endval" value="utl:80er" />
  <input type="submit" value="Click!">
</form>

点击提交后,数据将被发送到php脚本,在那里它可以被读作

$initval = $_GET['initval'];
$endval =$_GET['endval'];

编辑:我觉得这个问题不对,抱歉。 : - (

答案 2 :(得分:0)

尝试使用htmldomlibraries解析html。