PHP 测试 RRD 支持时出现未捕获错误

PHP Uncaught Error when testing RRD support

我有这个 PHP 文件,我用它来测试 RRD 支持:

<?php
$result=rrd_fetch( "/ang.rrd", array( "AVERAGE", "--resolution", "60", "--start", "-1d", "--end", "start+1h" ) );

foreach ( $result["data"]["myfield"] as $key => $value )
{
    echo "At timestamp $key, the value for myfield is $value.\n";
}
?>

如果我浏览到该文件,我会得到以下信息:

PHP Fatal error:  Uncaught Error: Call to undefined function rrd_fetch() in /var/www/html/graph.php:2\nStack trace:\n#0 {main}\n  thrown in /var/www/html/graph.php on line 2

如果我尝试 运行 命令行上的文件,我会得到以下信息:

PHP Notice:  Undefined index: myfield in /var/www/html/graph.php on line 4
PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/graph.php on line 4

我不知道为什么。有人能解释一下为什么会这样吗?

答案就在你的错误信息中:

Call to undefined function rrd_fetch

问题是默认不提供rrd函数。它们必须通过安装 rrd pecl 包来添加。

尝试安装 rrd 并重试您的代码: https://pecl.php.net/package/rrd

rrd 文档:http://www.php.net/rrd