html中具有最高值的抓取参数

时间:2018-08-21 09:42:57

标签: php regex domdocument

我有$html

$html = '<div>
<a href="./?pg=99"></a>
<a href="./?pg=32"></a>
<a href="./?pg=95"></a>
<a href="./?pg=1"></a>
//etc
';

如何浏览并抓住pg的最大值?因此,在上述情况下,我们得到:

$result = 99;

可能的方法是通过preg_match_all()和正则表达式找到/?pg=个案例,对它们进行排序并获取最高的数值。

1 个答案:

答案 0 :(得分:2)

您需要转义./?(导致\.\/\?个字符)以正确获取数字,对连续链接使用U标志,然后使用max()

//                           number --v              U --v
preg_match_all('/<a.*href="\.\/\?pg=(\d+)".*>(?:.*)<\/a>/U', $html, $matches);

// numbers are our capture group 1 --> $matches[1]
$result = max($matches[1]);

var_dump($result);
// 99

无需订购号码。