我有几个子域的 CPanel 托管。每个人都使用 AWstats 跟踪自己的统计数据。
有没有办法解析生成的 HTML 表以获取使用的带宽?
谢谢大家。
我有几个子域的 CPanel 托管。每个人都使用 AWstats 跟踪自己的统计数据。
有没有办法解析生成的 HTML 表以获取使用的带宽?
谢谢大家。
直接读取 HTML 的另一种方法是直接使用 awstats 用于呈现 HTML 的 stats 文件。cpanel 应该将它们存储在可访问的地方(在我的主机上它们位于 tmp/ 中)。这是一个简单的文本文件,带有易于找到的标记清晰的部分,并且在该部分中是代表表格的空格分隔的 CSV。这个关于使用 PHP 解析文件的页面是了解如何使用代码进行解析的好地方。我敢肯定,通过一些 linux 专业知识,您可以使用 sed 和 awk 分别切分文件并返回所需的列,以便从这些摘要中收集所需的统计信息。
使用DOMXPath查询获取“kB F”列中每一行的文本,例如第一行如下:
$doc = new DOMDocument;
//Path to Webalizer or AWStats file
$doc->Load('stats.html');
$xpath = new DOMXPath($doc);
// Get the first bandwidth record in the table
$query = "//tr[7]/td[7]/font/text()";
$bandwidth1 = $xpath->query($query);
参考