【问题标题】:help in php file_get_contents帮助 php file_get_contents
【发布时间】:2009-10-16 01:20:32
【问题描述】:

我有这个文件C:\\xampp\htdocs\exact\sample_pie.php,其中包含一个图表。这是代码:

<?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();

?>

如何通过 php 脚本将图形作为 .jpg 格式获取?我试过这个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(); ?>

请帮助我。谢谢。

【问题讨论】:

  • 您正在使用的库将图形输出为 GIF 格式,它会出现。为什么需要图像的输出?
  • 我需要把图片放在一个 pdf 文件中,这是一份年度报告。图片是图表。
  • 不能从浏览器中保存吗?

标签: php fpdf


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    在旁注中,我应该提到您的脚本比应有的复杂得多。 mysql_select_db()$graph-&gt;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);
    }
    

    对于其余部分,请按照 Ollie Saunders 的建议查阅图形库的文档。

    【讨论】:

      【解决方案3】:
      <img src="/exact/sample_pie.php" />
      

      您可能希望使用header() 在 sample_pie.php 中设置适当的内容类型。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-10
        • 2010-12-30
        • 2012-06-21
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多