最近、PhpMyGraph5.0 を使用してファイルからグラフを描画しようとしています。作成者のサイト ( http://phpmygraph.abisvmm.nl/ ) には、次のサンプル ファイルがあります。
<?php
//Set content-type header
header("Content-type: image/png");
//Include phpMyGraph5.0.php
include_once('phpMyGraph5.0.php');
//Set config directives
$cfg['title'] = 'Example graph';
$cfg['width'] = 500;
$cfg['height'] = 250;
//Set data
$data = array(
'Jan' => 12,
'Feb' => 25,
'Mar' => 0,
'Apr' => 7,
'May' => 80,
'Jun' => 67,
'Jul' => 45,
'Aug' => 66,
'Sep' => 23,
'Oct' => 23,
'Nov' => 78,
'Dec' => 23
);
//Create phpMyGraph instance
$graph = new phpMyGraph();
//Parse
$graph->parseHorizontalLineGraph($data, $cfg);
?>
ファイルから入力を取得する必要があるため、例のファイルを変更して $data の割り当てを次のように変更しました。
$data = file("$PATH/$MYFILE");
MYFILE 内のテキストをフォーマットしました。これらはファイルのいくつかの行です。
'00:00' => 19,
'00:05' => 19,
'00:10' => 21,
...
'17:10' => 21,
'17:15' => 21,
'17:20' => 21,
しかし、グラフを描画しようとすると、グラフの代わりに次のメッセージが表示されます。
"exception `Exception` with message `The value of the key %s` is not numeric.`"
PhpMyGraph5.0.php で検索したところ、例外をスローするテストが見つかりました。
//Loop
foreach($data as $key => $value) {
//Test
if(!is_numeric($value)) {
throw new Exception('The value of the key "%s" is not numeric.');
}
...
「throw Exception」をこのキャストに置き換えようとしました:
$value=(int)$value;
しかし、空のグラフしか得られません。
MYFILE の内容を $data = array(PASTE_HERE); 内に手動で貼り付けた場合 動作しますが、手動ではできません。
問題は値のデータ型に関するものだと思いますが、この問題を解決する方法がわかりません。
みんなに感謝し、私の悪い英語でごめんなさい。