在PHP中查找并从String中提取匹配值

时间:2015-12-18 17:58:58

标签: php regex

我有一个如下文字

$str = '<div>
           <div id="priceRangeWrapper">
              <div id="priceSlider" min="0" max="0"></div>
           </div>
        </div>';

1)首先,我想从上面的字符串中获取<div id="priceSlider" min="0" max="0"></div>的位置,其中min和max值是随机的。类似于Php的strpos()函数,它返回int的位置,如

 $pos = strpos($str, '<div id="priceSlider" min="0" max="0"></div>');
 //but min and max values are random. I don't know what can be they

2)我想从上面的文本中获取 min max 值。如何在PHP中使用/不使用regex获取这两个值?

1 个答案:

答案 0 :(得分:5)

不要使用正则表达式来解析HTML。相反,这是DOMDocument的一个例子。

$doc = new DOMDocument();
$doc->loadHTML($str); // Load the HTML string from your post

$xpath = new DOMXPath($doc);
$node = $xpath->query('//div[@id="priceSlider"]')->item(0); // Get the <div>

// Print out the min and max attribute values
echo $node->getAttribute('min') . " " . $node->getAttribute('max');

您可以看到它正常工作here