我希望此代码检查元素是否存在,然后获取div中的记录数。
HTML
<div id=myDiv>This table contains 5 records (3 seconds)</div>
PHP
$selector = new Zend_Dom_Query($response->getBody());
$nodes = $selector->query('#myDiv');
if (count($nodes) < 1) {
$this->setValue(0);
return;
}
$el = $nodes->current();
if (preg_match('#(\d+[\d,]*)\s+result#i', $el->nodeValue, $matches)) {
$number = str_replace(',', '', $matches[1]);
$this->setValue(intval($number));
} else {
Zend_Registry::get('log')->err(get_class($this).': Unable to match response and regex.');
$this->setValue(0);
}
现在它到达底部$ this-&gt; setValue(0),所以它可以找到元素。正则表达式一定有问题,这就是我无能为力的地方。
if (preg_match('#(\d+[\d,]*)\s+result#i', $el->nodeValue, $matches)) {
答案 0 :(得分:1)
HTML代码不包含任何匹配#(\d+[\d,]*)\s+result#i
的内容,表达式要求字符串“result”出现。
您可能希望将该字词更改为“记录”。 E.g:
/(\d+)\s+record/i