2009-10-16 73 views
0

我有这个文件C:\\xampp\htdocs\exact\sample_pie.php包含一个图表。这里是代码:帮助在php file_get_contents

<?php 
include("phpgraphlib.php"); 
include("phpgraphlib_pie.php"); 
include("connection.php"); 
$graph=new PHPGraphLibPie(400,200); 
$link = mysql_connect('localhost', 'root', ''); 
mysql_select_db('exact'); 

$querypa = "SELECT COUNT(nature) FROM approved WHERE nature='Parade'"; 
$resultpa = mysql_query($querypa); 
$printpa = mysql_result($resultpa,0); 
$querycs = "SELECT COUNT(nature) FROM approved WHERE nature='Community Service'"; 
$resultcs = mysql_query($querycs); 
$printcs = mysql_result($resultcs,0); 
$queryga = "SELECT COUNT(nature) FROM approved WHERE nature='General Assembly'"; 
$resultga = mysql_query($queryga); 
$printga = mysql_result($resultga,0); 
$querypl = "SELECT COUNT(nature) FROM approved WHERE nature='Play/Showcase/Socio-Cultural Show/Film Showing'"; 
$resultpl = mysql_query($querypl); 
$printpl = mysql_result($resultpl,0); 
$queryco = "SELECT COUNT(nature) FROM approved WHERE nature='Competition/Sportsfest'"; 
$resultco = mysql_query($queryco); 
$printco = mysql_result($resultco,0); 
$queryfr = "SELECT COUNT(nature) FROM approved WHERE nature='Fund Raising'"; 
$resultfr = mysql_query($queryfr); 
$printfr = mysql_result($resultfr,0); 
$queryse = "SELECT COUNT(nature) FROM approved WHERE nature='Seminar/Convention/Conference/Training'"; 
$resultse = mysql_query($queryse); 
$printse = mysql_result($resultse,0); 


$totalAct=$printpa+$printga+$printpl+$printcs+$printco+$printfr+$printse; 
$avepa=($printpa/$totalAct)*100; 
$avecs=($printcs/$totalAct)*100; 
$avega=($printga/$totalAct)*100; 
$avepl=($printpl/$totalAct)*100; 
$aveco=($printco/$totalAct)*100; 
$avefr=($printfr/$totalAct)*100; 
$avese=($printse/$totalAct)*100; 
$pa=number_format($avepa,2); 
$cs=number_format($avecs,2); 
$ga=number_format($avega,2); 
$pl=number_format($avepl,2); 
$co=number_format($aveco,2); 
$fr=number_format($avefr,2); 
$se=number_format($avese,2); 

$data=array("Parade"=>$pa, "General Assembly"=>$ga, "Play/Showcase/Socio-Cultural Show/Film Showing"=>$pl, "Community Service"=>$cs, "Competition/Sportsfest"=>$co, "Fund Raising"=>$fr, "Seminar/Convention/Conference/Training"=>$se); 
$graph->addData($data); 
$graph->setTitle("Total Activities per Nature of Activity"); 
$graph->setPrecision(2); 
$graph->setLabelTextColor("0,0,0"); 
$graph->setLegendTextColor("0,0,0"); 
$graph->setGradient("210,245,255","pastel_purple"); 

$graph->createGraph(); 

?> 

我怎样才能得到图形作为一个JPG通过PHP脚本?我想这file_get_contents("C:\\xampp\htdocs\exact\sample_pie.php"); 但它只输出这样的:

$pa, "General Assembly"=>$ga, "Play/Showcase/Socio-Cultural Show/Film Showing"=>$pl, "Community Service"=>$cs, "Competition/Sportsfest"=>$co, "Fund Raising"=>$fr, "Seminar/Convention/Conference/Training"=>$se); $graph->addData($data); $graph->setTitle("Total Activities per Nature of Activity"); $graph->setPrecision(2); $graph->setLabelTextColor("0,0,0"); $graph->setLegendTextColor("0,0,0"); $graph->setGradient("210,245,255","pastel_purple"); $graph->createGraph(); ?> 

请帮助我。谢谢。

+0

您正在使用的库将图形输出为GIF格式。 为什么你需要输出图像? – unrelativity 2009-10-16 01:31:44

+0

我需要把图像放在一个年度报告的pdf文件中。图像是一张图表。 – noob 2009-10-16 01:34:12

+0

难道你不能从浏览器保存它吗? – unrelativity 2009-10-16 01:58:31

回答

1

使用file_get_contents()就像那样只会检索脚本本身。该文件是该文件包含的内容,这就是file_get_contents()所做的;正是它在锡上所说的。

尝试查看PHPGraphLib的文档或源代码失败的文档。应该有某种保存方法可以调用,而不是createGraph(),或者您可以传递文件名参数到createGraph()

1

在一个旁注中,我应该提到你的脚本比它应该更复杂。 mysql_select_db()$graph->addData()之间一切都可以改写成这样:

$data = array(
    'Parade' => 0, 
    'Community Service' => 0, 
    'General Assembly' => 0, 
    'Play/Showcase/Socio-Cultural Show/Film Showing' => 0, 
    'Competition/Sportsfest' => 0, 
    'Fund Raising' => 0, 
    'Seminar/Convention/Conference/Training' => 0 
); 

$sql = "SELECT nature, COUNT(*) AS cnt 
      FROM approved 
     WHERE nature IN ('" . implode("','", array_keys($data)) . "') 
     GROUP BY nature"; 
$result = mysql_query($sql); 

while ($row = mysql_fetch_assoc($result)) 
{ 
    $data[$row['nature']] = $row['cnt']; 
} 
$totalAct = array_sum($data); 

foreach ($data as $nature => &$value) 
{ 
    $value = number_format(100 * $value/$totalAct, 2); 
} 

对于剩下的,请咨询您的图形库的文档作为奥利·桑德斯建议。

0
<img src="/exact/sample_pie.php" /> 

您可能需要使用header()从sample_pie.php内设置适当的内容类型。