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
我有这个 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