PHP RRD日期输入作为推荐



我一直在尝试通过PHP生成RRD图。到目前为止,它工作得很好,除了最后一行,我想有最后的更新日期/时间。我一直在网上搜索,但是我找不到与我的问题相关的信息。我发现了一个用Bash RRDTool GPRINT格式编写的脚本,该脚本与我想要产生的内容接近,但解决方案不能应用于我的问题。下面是我在PHP中生成日期的代码示例:

date_default_timezone_set('Europe/Stockholm');
$timezone = new DateTime(NULL, new DateTimeZone('Europe/Stockholm'));
$date = date('l jS of F Y h:i:s A' , $timezone->format('U'));

带echo的输出为:

Monday 5th of May 2014 12:40:14 PM

在我的图形结束时,我试图将其作为注释导入到图形,代码示例:

"COMMENT: RRD last updated: ".$date."\n",

我得到的错误:

<b>Graph error: </b>I don't understand ': Monday 5th of May 2014 12:43:17 PMn'
in command: 'COMMENT: RRD last updated: Monday 5th of May 2014 12:43:17 PMn'.

我试图在字符:上应用(反斜杠),并且错误按预期时间转移:

<b>Graph error: </b>I don't understand ':45:31 PMn' in command: 'COMMENT: RRD
last updated: Monday 5th of May 2014 12:45:31 PMn'.

我尝试在日期语法上应用相同的解决方案:

$date = date('l jS of F Y h:i:s A' , $timezone->format('U'));

但是输出的错误仍然是一样的:

<b>Graph error: </b>I don't understand ':47:48 PMn' in command: 'COMMENT: RRD
last updated: Monday 5th of May 2014 12:47:48 PMn'.

我还试图导入COMMENT内的日期语法:

"COMMENT: Graph last updated: date('l jS of F Y h:i:s A' ,
$timezone->format('U'))\n"

我得到的错误:

PHP Notice:  Undefined property: DateTime::$format

在这一点上,我用尽了想法和可能的解决方案。我想知道是否有人有类似的问题或如何解决这个问题的可能的想法。我在Perl中创建了一个示例代码来做同样的事情,默认情况下,Perl在底部打印日期。所以应该是很容易做到的。

提前感谢您的时间和精力来帮助我解决我的问题。

必须转义COMMENT指令中的所有冒号,否则会收到错误,就像您所经历的那样。

所以,如果你想要这个注释,你需要转义它们。调用str_replace可以处理:

$date = date('l jS of F Y h:i:s A' , $timezone->format('U'));
$comment = "RRD last updated: ".$date;
$comment = str_replace( ":", "\:", $comment );
$result = rrd_graph($rrdfile,  array(
.... things go in here ....
  "COMMENT:".$comment."\n";
));

当然,您总是可以在date命令中这样做,记住您需要转义转义,尽管在这种情况下您需要确保没有其他冒号出现:

$date = date('l jS of F Y h\:i\:s A' , $timezone->format('U'));
$comment = "RRD last updated \:".$date."\n";

相关内容

  • 没有找到相关文章

最新更新