作者 主題: jpgraph圖形無法呈現  (閱讀 157615 次)

0 會員 與 1 訪客 正在閱讀本文。

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
jpgraph圖形無法呈現
« 於: 2009-11-03 21:07 »
各位大大
因為目前需要存取mysql的資料並繪製成曲線圖,所以使用jpgraph ,下面是我新增的程式碼test.html
代碼: [選擇]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jpgraph</title>
</head>

<body>
<?php
include ("jpgraph/jpgraph.php");
include (
"jpgraph/jpgraph_pie.php");
include (
"jpgraph/jpgraph_pie3d.php");

$data = array(4060213350);

$graph = new PieGraph(400200);
$graph->SetShadow();

$graph->title->SetFont(FF_BIG5FS_NORMAL);
$graph->legend->SetFont(FF_BIG5FS_NORMAL);
$graph->title->Set("中文");
$p1 = new PiePlot3D($data);

$p1->SetSize(0.5);
$p1->SetCenter(0.45);
$p1->SetLegends(array("中文","2","3","4","5"));
$graph->Add($p1);

$graph->Stroke();
?>


</body>
</html>




,但是在IE和firefox上時,卻無法出現圖形,只有下列訊息 , 請問各位高手是那裡錯了嗎??

代碼: [選擇]
SetShadow(); $graph->title->SetFont(FF_BIG5, FS_NORMAL); $graph->legend->SetFont(FF_BIG5, FS_NORMAL); $graph->title->Set("中文"); $p1 = new PiePlot3D($data); $p1->SetSize(0.5); $p1->SetCenter(0.45); $p1->SetLegends(array("中文","2","3","4","5")); $graph->Add($p1); $graph->Stroke(); ?>

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: jpgraph圖形無法呈現
« 回覆 #1 於: 2009-11-03 21:41 »
各位大大
因為目前需要存取mysql的資料並繪製成曲線圖,所以使用jpgraph ,下面是我新增的程式碼test.html
代碼: [選擇]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jpgraph</title>
</head>

<body>
<?php
include ("jpgraph/jpgraph.php");
include (
"jpgraph/jpgraph_pie.php");
include (
"jpgraph/jpgraph_pie3d.php");

$data = array(4060213350);

$graph = new PieGraph(400200);
$graph->SetShadow();

$graph->title->SetFont(FF_BIG5FS_NORMAL);
$graph->legend->SetFont(FF_BIG5FS_NORMAL);
$graph->title->Set("中文");
$p1 = new PiePlot3D($data);

$p1->SetSize(0.5);
$p1->SetCenter(0.45);
$p1->SetLegends(array("中文","2","3","4","5"));
$graph->Add($p1);

$graph->Stroke();
?>


</body>
</html>




,但是在IE和firefox上時,卻無法出現圖形,只有下列訊息 , 請問各位高手是那裡錯了嗎??

代碼: [選擇]
SetShadow(); $graph->title->SetFont(FF_BIG5, FS_NORMAL); $graph->legend->SetFont(FF_BIG5, FS_NORMAL); $graph->title->Set("中文"); $p1 = new PiePlot3D($data); $p1->SetSize(0.5); $p1->SetCenter(0.45); $p1->SetLegends(array("中文","2","3","4","5")); $graph->Add($p1); $graph->Stroke(); ?>

訊息? 那個是你的程式碼呀~
檢查一下log是否有訊息, 或是打開 display_errors, 看有沒有什麼訊息出現, 也可能是程式碼裡隱藏了什麼看不到的符號吧?  ::)

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #2 於: 2009-11-03 21:48 »
高手~

我知道所顯示的訊息是我的程式碼,只是為什麼會顯示出程式碼?
你所說的"log是否有訊息, 或是打開 display_errors, 看有沒有什麼訊息出現" , 請問要如何檢查??

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: jpgraph圖形無法呈現
« 回覆 #3 於: 2009-11-03 21:57 »
php.ini 裡有 display_errors = Off 的設定, 這是預設值
改成 On, 然後重新啟動 web server
這樣錯誤訊息就會直接顯示在網頁上

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #4 於: 2009-11-03 22:05 »
高手~
修改了php.ini,也重新啟動apach了,但是從瀏灠器(IE和firefox)預覽還是一樣的訊息

hoyo

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 4047
  • 性別: 男
  • 有需要的時候,學習就不會分階段。
    • 檢視個人資料
    • 樂咖黑電腦學習網
回覆: jpgraph圖形無法呈現
« 回覆 #5 於: 2009-11-03 22:10 »
test.html....???

你的 apache 有設定 html 使用 php 解析嗎?
受人與魚,不如授人與漁
上海自來水來自海上;倫敦好奇人奇好敦倫

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #6 於: 2009-11-03 22:14 »
應該是有喔~
因為其它沒有用到jpgraph的html都可以顯示喔

TyroneYeh

  • 俺是博士!
  • *****
  • 文章數: 2396
  • 性別: 男
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #7 於: 2009-11-04 08:56 »
檢視一下原始碼吧? 是不是還是 php 的 source
弄個 <?php phpinfo(); ?> 檔案看看
跑的出 php 的相關資訊嗎?
--
TyroneYeh

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #8 於: 2009-11-04 09:18 »
應該是有喔~
因為其它沒有用到jpgraph的html都可以顯示喔
其它沒有用到jpgraph的html 有用到 php 嗎?

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: jpgraph圖形無法呈現
« 回覆 #9 於: 2009-11-04 09:29 »
應該是有喔~
因為其它沒有用到jpgraph的html都可以顯示喔

預設是不會解析html
樓主最好先試一下
或是改成 test.php

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #10 於: 2009-11-04 12:04 »
注意事項:
  • jpgraph輸出的是圖形,所以你一定要用.php,而且<?php之前不能有輸出,這支是個獨立的php程式,不會跟任何html混用
  • 你要插入jpgraph圖片的html,就用<img>,src指向上面的php
  • 中文必須用big5編碼...,所以檔案編碼一定不能用utf-8
  • 字型檔要能找得到,所以檢查一下jpgraph_ttf.inc.php裡面指定的字型檔

我用的是3.0.6版...
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #11 於: 2009-11-04 13:16 »
各位高手~
1.使用<?php phpinfo(); ?>可以跑出php 的相關資訊 : PHP Version 6.0.0-dev
2.若是執行test.php
Warning: include(jpgraph/jpgraph.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph.php' for inclusion (include_path='.;C:\php6\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include(jpgraph/jpgraph_pie.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie.php' for inclusion (include_path='.;C:\php6\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include(jpgraph/jpgraph_pie3d.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie3d.php' for inclusion (include_path='.;C:\php6\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Fatal error: Class 'PieGraph' not found in C:\AppServ\www\jpgraphtest\GDexample.php on line 16

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #12 於: 2009-11-04 13:35 »
建議還是先用php-5.2吧...看起來你也是用AppServ?所以可以下載AppServ 2.5.10來安裝。

然後看一下你設定的php.ini裡面的include_path,(舉例)我的是在C:\AppServ\php5\PEAR,然後解開你下載的jpgraph壓縮檔,把解出來的src目錄改名為jpgraph,然後把這個目錄拷貝到C:\AppServ\php5\PEAR。這樣不論你的php放在哪裡,都可以使用include('jpgraph/*.php')...
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #13 於: 2009-11-04 13:54 »
所以我要把PHP6移掉嗎?

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #14 於: 2009-11-04 14:42 »
大部分東西跟php6的相容性都不確定的情況下,你還是先用php5吧。當然在php6也許可以跑啦...但是出了問題就...。另外也建議先不要用5.3,畢竟你只是自己做測試看東西在php上會不會跑,而不是在研究php語言的新規格。

至少我早上花個十幾分鐘就已經從下載jpgraph進展到用你提供的php跑出圖表了,所以我想我用AppServ2.5.10應該是沒問題的。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #15 於: 2009-11-04 15:08 »
高手~
我已經下載並安裝AppServ2.5.10, 也可以用<?php phpinfo(); ?>印出PHP資訊(PHP Version 5.2.9-2)
並且下載jpgraph壓縮檔,並把解出來的src目錄改名為jpgraph,然後把這個目錄拷貝到C:\AppServ\php5\PEAR
但是我執行GDexample.html如下的程式碼
代碼: [選擇]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jpgraph</title>
</head>

<body>
<?php
include ("jpgraph/jpgraph.php");
include (
"jpgraph/jpgraph_pie.php");
include (
"jpgraph/jpgraph_pie3d.php");

$data = array(4060213350);

$graph = new PieGraph(400200);
$graph->SetShadow();

$graph->title->SetFont(FF_BIG5FS_NORMAL);
$graph->legend->SetFont(FF_BIG5FS_NORMAL);
$graph->title->Set("銝剜?");
$p1 = new PiePlot3D($data);

$p1->SetSize(0.5);
$p1->SetCenter(0.45);
$p1->SetLegends(array("銝剜?","2","3","4","5"));
$graph->Add($p1);

$graph->Stroke();
?>


</body>
</html>

還是一樣出現
代碼: [選擇]
SetShadow(); $graph->title->SetFont(FF_BIG5, FS_NORMAL); $graph->legend->SetFont(FF_BIG5, FS_NORMAL); $graph->title->Set("中文"); $p1 = new PiePlot3D($data); $p1->SetSize(0.5); $p1->SetCenter(0.45); $p1->SetLegends(array("中文","2","3","4","5")); $graph->Add($p1); $graph->Stroke(); ?>
當我執行相同的程式碼但是不同副檔名(GDexample.php)時,出現下列錯誤訊息
Warning: include(jpgraph/jpgraph.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include(jpgraph/jpgraph_pie.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include(jpgraph/jpgraph_pie3d.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie3d.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Fatal error: Class 'PieGraph' not found in C:\AppServ\www\jpgraphtest\GDexample.php on line 16
« 上次編輯: 2009-11-04 15:13 由 NARs »

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #16 於: 2009-11-04 15:14 »
先把<?php之前以及?>之後的東西全部拿掉...,副檔名改成php跑跑看。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
回覆: jpgraph圖形無法呈現
« 回覆 #17 於: 2009-11-04 15:28 »
樓主...
請先確定你的apache有正確設定好會將.html的檔案當成php來執行。
不然就是請把GDexample.html 改成 GDexample.php

您可以先作個簡單的測試,建立一個test.html
用以下的內容去測試
引用
<?php
  echo "php已經正確執行!";
  die;
?>
你看到的是html版本,php沒有正確的執行!
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #18 於: 2009-11-04 15:59 »
高手~
我新增一個test.html, 並輸入下列程式


代碼: [選擇]
<?php
  
echo "php已經正確執行!";
  die;
?>

再以firefox 預覽時是空白的

ricky

  • 區域板主
  • 鑽研的研究生
  • *****
  • 文章數: 669
    • 檢視個人資料
    • Ricky 碎碎唸
回覆: jpgraph圖形無法呈現
« 回覆 #19 於: 2009-11-04 16:09 »
高手~
我新增一個test.html, 並輸入下列程式


代碼: [選擇]
<?php
  
echo "php已經正確執行!";
  die;
?>

再以firefox 預覽時是空白的

你還少了
引用
你看到的是html版本,php沒有正確的執行!

不過大概猜得到,你的apache設定有問題。
你的apache設定是把.html的檔案當成html顯示,而不是當成php程式去執行。
我的symfony作品:YOMOpets 寵物誌
有興趣可以一起來討論symfony喔
我的部落格:http://ricky.ez2.us/

Yamaka

  • 俺是博士!
  • *****
  • 文章數: 4913
    • 檢視個人資料
    • http://www.ecmagic.com
回覆: jpgraph圖形無法呈現
« 回覆 #20 於: 2009-11-04 16:14 »
再以firefox 預覽時是空白的

除非樓主知道怎麼設定讓 web server 以 php 來解析 html,
不然副檔名改用 .php 吧, 不要再自找麻煩了

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #21 於: 2009-11-04 16:17 »
但是即使用我.php執行,還是無法呈現jpgraph,誰救救我呀~~~~

Warning: include(jpgraph/jpgraph.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 10

Warning: include(jpgraph/jpgraph_pie.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 11

Warning: include(jpgraph/jpgraph_pie3d.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Warning: include() [function.include]: Failed opening 'jpgraph/jpgraph_pie3d.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\jpgraphtest\GDexample.php on line 12

Fatal error: Class 'PieGraph' not found in C:\AppServ\www\jpgraphtest\GDexample.php on line 16

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #22 於: 2009-11-04 16:18 »
為啥你堅持副檔名要用html咧...你的apache又不是這樣設定的

我做了範例:http://www.fillano.idv.tw/test533.php
他的原始碼:http://www.fillano.idv.tw/test533.phps
如果副檔名改成html,就變成這樣:http://www.fillano.idv.tw/test533.html

三個檔案的內容是完全一樣的。如果不改設定,副檔名是php的,php才會處理他...所以你副檔名是html的,伺服器就直接把內容當作html傳過來了...就變成那樣的畫面。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #23 於: 2009-11-04 16:21 »
另外的錯誤訊息,是找不到jpgraph的檔案阿...

再說一次,請把下載的jpgraph檔案解壓縮,裡面的src目錄改名為jpgraph,然後把這個目錄copy到include_path設定的目錄,依照你最後的錯誤訊息看起來,這個目錄應該是在C:\php5\pear。這應該是最快的改法了。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #24 於: 2009-11-04 16:34 »
高手~
目前應該進了一大步了~

錯誤訊息已經變成
Jpgraph Error : 25049
Font file "c:\windows\fontsbkai00mp.ttf" is not readable or does not exist.


這是找不到字型檔嗎??在我的電腦找不到這個檔

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #25 於: 2009-11-04 16:41 »
你不是看著jaceju大大的部落格做的嗎?他前面有提到要改字型檔捏。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #26 於: 2009-11-04 16:49 »
高手~~
在jaceju大大的部落格有提到如下:

[接著在更名後的 jpgraph 資料夾下,找到 jpg-config.inc 檔,修改以下的設定:

DEFINE('CHINESE_TTF_FONT', 'bkai00mp.ttf');

我個人偏好用新細明體,所以我改成:

DEFINE('CHINESE_TTF_FONT', 'mingliu.ttc');
 ]
但是我在jpg-config.inc.php中並沒有找到這一行 "DEFINE('CHINESE_TTF_FONT', 'bkai00mp.ttf');
"

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #27 於: 2009-11-04 16:50 »
新版改了,在jpgraph_ttf.inc.php
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

fillano

  • 鑽研的研究生
  • *****
  • 文章數: 526
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #28 於: 2009-11-04 16:55 »
不過這種問題應該可以自己解得了,用搜尋工具找一下檔案內容就知道了。他不會憑空跑出bkai00mp.ttf這個檔案的,所以用這個檔名來搜尋jpgraph裡面的檔案,就知道有怎樣的變動。
Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung.

NARs

  • 活潑的大學生
  • ***
  • 文章數: 227
    • 檢視個人資料
回覆: jpgraph圖形無法呈現
« 回覆 #29 於: 2009-11-04 17:54 »
高手~
已經更改了字型在jpgraph_ttf.inc.php
 1.在jpgraph_ttf.inc.php
將DEFINE('CHINESE_TTF_FONT', 'bkai00mp.ttf');

改成:

DEFINE('CHINESE_TTF_FONT', 'mingliu.ttc');

並且也新增:
define("TTF_DIR","C:\WINDOWS\Fonts");
但是還是一樣錯誤,我又少做什麼了嗎????哀................