已有40人关注
PHP入门到精通三,P221,代码复制到网页的层中,就不能显示了。
发表在PHP图书答疑 2016-08-04
是否精华
版块置顶:
<?php
   include ("jpgraph/jpgraph.php");
        include ("jpgraph/jpgraph_line.php"); //引用折线图LinePlot类文件
$datay = array(8320,9360,14956,17028,13060,15376,25428,16216,28548,18632,22724,28460); //填充的数据   
        $graph = new Graph(600,300,"auto"); //创建画布
        $graph->img->SetMargin(50,40,30,40);     //设置统计图所在画布的位置,左边距50、右边距40、上边距30、下边距40,单位为像素
        $graph->img->SetAntiAliasing(); //设置折线的平滑状态
        $graph->SetScale("textlin"); //设置刻度样式
        $graph->SetShadow(); //创建画布阴影
        $graph->title->Set("2009年《PHP从入门到精通》图书月销售额折线图"); //设置标题
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置标题字体
        $graph->SetMarginColor("lightblue"); //设置画布的背景颜色为淡蓝色
        $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); //设置Y轴标题的字体
        $graph->xaxis->SetPos("min");
        $graph->yaxis->HideZeroLabel();
        $graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
        $a=array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"); //X轴
        $graph->xaxis->SetTickLabels($a);  //设置X轴
        //$graph->xaxis->SetFont(FF_SIMSUN);  //设置X坐标轴的字体
        $graph->yscale->SetGrace(20); 
   
        $p1 = new LinePlot($datay); //创建折线图对象
        $p1->mark->SetType(MARK_FILLEDCIRCLE); //设置数据坐标点为圆形标记
        $p1->mark->SetFillColor("red"); //设置填充的颜色
        $p1->mark->SetWidth(4); //设置圆形标记的直径为4像素
        $p1->SetColor("blue"); //设置折形颜色为蓝色
        $p1->SetCenter(); //在X轴的各坐标点中心位置绘制折线
        $graph->Add($p1); //在统计图上绘制折线
        
$a=$graph->Stroke();
//输出图像
?>
  这段代码只能独立存在于网页中,加入到有内容的网页中即出错。



报错的网页源代码如下:
<!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>无标题文档</title>
<style type="text/css">
#tu1 {
font-family: "Courier New", Courier, monospace;
font-size: 14px;
height: auto;
width: auto;
border-top-style: none;
border-right-style: none;
border-bottom-style: none;
border-left-style: none;
}
</style>
</head>

<body>
<div class="tu" id="tu1">
<?php
   include ("jpgraph/jpgraph.php");
        include ("jpgraph/jpgraph_line.php"); //引用折线图LinePlot类文件
$datay = array(8320,9360,14956,17028,13060,15376,25428,16216,28548,18632,22724,28460); //填充的数据   
        $graph = new Graph(600,300,"auto"); //创建画布
        $graph->img->SetMargin(50,40,30,40);     //设置统计图所在画布的位置,左边距50、右边距40、上边距30、下边距40,单位为像素
        $graph->img->SetAntiAliasing(); //设置折线的平滑状态
        $graph->SetScale("textlin"); //设置刻度样式
        $graph->SetShadow(); //创建画布阴影
        $graph->title->Set("2009年《PHP从入门到精通》图书月销售额折线图"); //设置标题
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置标题字体
        $graph->SetMarginColor("lightblue"); //设置画布的背景颜色为淡蓝色
        $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); //设置Y轴标题的字体
        $graph->xaxis->SetPos("min");
        $graph->yaxis->HideZeroLabel();
        $graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
        $a=array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"); //X轴
        $graph->xaxis->SetTickLabels($a);  //设置X轴
        $graph->xaxis->SetFont(FF_SIMSUN);  //设置X坐标轴的字体
        $graph->yscale->SetGrace(20); 
   
        $p1 = new LinePlot($datay); //创建折线图对象
        $p1->mark->SetType(MARK_FILLEDCIRCLE); //设置数据坐标点为圆形标记
        $p1->mark->SetFillColor("red"); //设置填充的颜色
        $p1->mark->SetWidth(4); //设置圆形标记的直径为4像素
        $p1->SetColor("blue"); //设置折形颜色为蓝色
        $p1->SetCenter(); //在X轴的各坐标点中心位置绘制折线
        $graph->Add($p1); //在统计图上绘制折线
        $graph->Stroke(); //输出图像
?>








</div>


</body>
</html>


报错的代码如下:
JpGraph Error: HTTP headers have already been sent.
Caused by output from file tu.php at line 6.
Explanation:
HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).

Most likely you have some text in your script before the call to Graph::Stroke(). If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser.

For example it is a common mistake to leave a blank line before the opening "<?php".
分享到:
精彩评论 1
轻鸿_mrkj
学分:0 LV1
TA的每日心情
加油
2020-12-25 20:06:49
2016-08-04
沙发
读者您好:
请将嵌于有内容网页中的源码以压缩包的形式发布上来,便于我们帮您分析和解决问题。
首页上一页 1 下一页尾页 1 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照