Home >Backend Development >PHP Tutorial >jpgraph Chinese character garbled solutions and examples_PHP tutorial

jpgraph Chinese character garbled solutions and examples_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 17:39:121133browse

JPGRAPH is a very convenient tool for making various charts in the PHP world, such as bar charts, pie charts, radar charts, etc. It can basically do everything for all charts.

In PEAR, there is also a charting tool called image_graph. This tool is also very powerful, but the biggest advantage of jpgraph compared with image_graph is that there are many examples and very detailed documentation, which makes jpgraph is quite convenient to use.

Finally decided to use jpgraph.

The following is a piece of code. At the same time, I encountered the problem of garbled Chinese characters during use. The reason has been found and I will explain it to everyone.

If you encounter any problems when using jpgraph, you can email me and we will discuss it. At the same time, if you have any experience using it, I hope you can post it on LAMPER so that more people can share your experience.

<ol class="dp-c">
<li class="alt"><span><span><?php   </span></span></li><li><span class="keyword">include</span><span> (</span><span class="string">"../jpgraph.php"</span><span>);   </span></li><li class="alt"><span class="keyword">include</span><span> (</span><span class="string">"../jpgraph_line.php"</span><span>);   </span></li><li><span>   </span></li><li class="alt"><span class="vars">$ydata</span><span> = </span><span class="keyword">array</span><span>(11,3,8,12,5,1,9,13,5,7);   </span></li><li><span class="vars">$y2data</span><span> = </span><span class="keyword">array</span><span>(354,200,265,99,111,91,198,225,293,251);   </span></li><li class="alt"><span class="vars">$datax</span><span> = </span><span class="keyword">array</span><span>(</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>,</span><span class="string">"2006-01-01"</span><span>);   </span></li><li><span>   </span></li><li class="alt"><span class="comment">// Create the graph. These two calls are always required  </span><span> </span></li><li><span class="vars">$graph</span><span> = </span><span class="keyword">new</span><span> Graph(800,400,</span><span class="string">"auto"</span><span>);    </span></li><li class="alt"><span class="vars">$graph</span><span>->img->SetMargin(40,40,20,40);   </span></span></li>
<li><span>   </span></li>
<li class="alt">
<span class="vars">$graph</span><span>->title->SetFont(FF_SIMSUN,FS_BOLD);   </span>
</li>
<li>
<span class="vars">$title</span><span> = </span><span class="string">"展示pv/展示ip"</span><span>;   </span>
</li>
<li class="alt">
<span class="vars">$graph</span><span>->title->Set(</span><span class="vars">$title</span><span>);   </span>
</li>
<li><span>   </span></li>
<li class="alt">
<span class="vars">$graph</span><span>->SetScale(</span><span class="string">"textlin"</span><span>);   </span>
</li>
<li>
<span class="vars">$graph</span><span>->SetY2Scale(</span><span class="string">"lin"</span><span>);   </span>
</li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$graph</span><span>->xaxis->title->Set(</span><span class="string">"时间"</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$graph</span><span>->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);   </span>
</li>
<li>
<span class="vars">$graph</span><span>->xaxis->SetTickLabels(</span><span class="vars">$datax</span><span>);   </span>
</li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$graph</span><span>->yaxis->title->Set(</span><span class="string">"展示pv"</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$graph</span><span>->yaxis->SetColor(</span><span class="string">"blue"</span><span>);   </span>
</li>
<li>
<span class="vars">$graph</span><span>->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);   </span>
</li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$graph</span><span>->y2axis->title->Set(</span><span class="string">"展示IP"</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$graph</span><span>->y2axis->SetColor(</span><span class="string">"orange"</span><span>);   </span>
</li>
<li>
<span class="vars">$graph</span><span>->y2axis->title->SetFont(FF_SIMSUN,FS_BOLD);   </span>
</li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$lineplot</span><span>=</span><span class="keyword">new</span><span> LinePlot(</span><span class="vars">$ydata</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$lineplot</span><span>->SetColor(</span><span class="string">"blue"</span><span>);   </span>
</li>
<li>
<span class="vars">$lineplot</span><span>->SetWeight(2);   </span>
</li>
<li class="alt">
<span class="vars">$lineplot</span><span>->SetLegend(</span><span class="string">"展示pv"</span><span>);   </span>
</li>
<li>
<span class="vars">$graph</span><span>->legend->SetFont(FF_SIMSUN,FS_BOLD);   </span>
</li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$lineplot2</span><span>=</span><span class="keyword">new</span><span> LinePlot(</span><span class="vars">$y2data</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$lineplot2</span><span>->SetColor(</span><span class="string">"orange"</span><span>);   </span>
</li>
<li>
<span class="vars">$lineplot2</span><span>->SetWeight(2);   </span>
</li>
<li class="alt">
<span class="vars">$lineplot2</span><span>->SetLegend(</span><span class="string">"展示ip"</span><span>);   </span>
</li>
<li><span>   </span></li>
<li class="alt"><span>   </span></li>
<li>
<span class="vars">$graph</span><span>->Add(</span><span class="vars">$lineplot</span><span>);   </span>
</li>
<li class="alt">
<span class="vars">$graph</span><span>->AddY2(</span><span class="vars">$lineplot2</span><span>);   </span>
</li>
<li><span>   </span></li>
<li class="alt">
<span class="comment">// Display the graph  </span><span> </span>
</li>
<li>
<span class="vars">$graph</span><span>->Stroke();   </span>
</li>
<li class="alt"><span>?>  </span></li>
</ol>

Pay attention to the SetFont method. If your file encoding is gb2312, the first parameter of the SetFont method is FF_SIMSUN to display Chinese characters normally

If your file is encoded as utf-8, you need to add $title = iconv("UTF-8", "gb2312", $title)

In jpgraph.php, there is such a statement:

elseif( $aFF === FF_SIMSUN ) {
​ // Do Chinese conversion
 if( $this->g2312 == null ) {
include_once jpgraph_gb2312.php ;
​$this->g2312 = new GB2312toUTF8();
}
Return $this->g2312->gb2utf8($aTxt);
}

That is to say, when jpgraph displays Chinese characters by default, it regards the Chinese character encoding as gb2312 and converts it to utf-8 before displaying it.

In this case, if your file encoding is gb2312, the first parameter of the SetFont method is FF_SIMSUN

If you use UTF-8 encoding, you need to convert the Chinese character encoding to gb2312 first, so that your Chinese characters can be displayed normally.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/486315.htmlTechArticleJPGRAPH is a very convenient tool for making various charts in the PHP world, such as bar charts, pie charts, radars Charts, etc., basically omnipotent for all charts. In PEAR, there is also a tool for making charts...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn