我需要从以下文本中获取页数:
<font size="1" color="blue" face="Verdana, Arial">Page 1 of 5 / 22 Records
我没有正则表达式的经验。由于我主要用 C 编程,所以我尝试了以下方法:
sscanf($result, "Page 1 of %d", $Npages);
但是这不起作用。
最佳答案
你就快到了。 PHP 的 sscanf
可以返回输出,或者获取 reference填充解析后的值。在您的代码中,您似乎正在尝试使用引用,但您没有这样指定它。 PHP 中的引用由变量名之前的 &
指定,因此您可以使用:
sscanf($result, "Page 1 of %d", &$npages);
或者,如果您不通过引用传递任何变量,sscanf
将返回所有解析值的数组:
$result = "Page 1 of 5 / 22 Records";
var_dump(sscanf($result, "Page %d of %d / %d Records"));
/*
array(3) {
[0]=>
int(1)
[1]=>
int(5)
[2]=>
int(22)
}
*/
然后您可以使用 list
将该数组分配给变量:
list($page, $npages, $nrecords) = sscanf($result, "Page %d of %d / %d Records");
关于php - 解析部分 html 字符串并隔离特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651954/