html_graphs.php
来自「GForge 3.0 协作开发平台 支持CVS, mailing lists, 」· PHP 代码 · 共 849 行 · 第 1/2 页
PHP
849 行
<?php/** * SourceForge: Breaking Down the Barriers to Open Source Development * Copyright 1999-2001 (c) VA Linux Systems * http://sourceforge.net * * @author Tim Perdue <tperdue@valnux.com> * @version $Id: HTML_Graphs.php,v 1.18 2001/06/07 20:47:04 dbrogdon Exp $ * @date $Date: 2001/06/07 20:47:04 $ *//*######################################################################### $Source: /home/cvsroot/alexandria/www/include/HTML_Graphs.php,v $# $Revision: 1.18 $# $State: Exp $## Revision 1.5 1998/11/05 06:15:52 pdavis# Added error_reporting setting per Jean-Pierre Arneodo's request.# (Though redundant) Added html_graph_init() to initialize vars array.## Revision 1.4 1998/07/08 05:24:25 pdavis# Add double_vertical_graph from Jan Diepens.# Added "max" function to find $largest in examples page.# Added code to increase values of zero to one.# Added double_vertical_graph example# Combined all source into one zip.## Revision 1.3 1998/06/17 23:37:19 pdavis# Added mixed color codes and images to double graph.## Revision 1.2 1998/06/17 21:20:20 pdavis# Fixed Background problem, added mixed color codes and graphics.## Revision 1.1 1998/06/17 15:52:41 pdavis# Initial revision########################################################################### *# * Phil Davis# *# * Smyrna, Tennessee 37167 USA# *# * pdavis@pobox.com# * http://www.pobox.com/~pdavis/# *## (C) Copyright 1998 # Phil Davis# Printed in the United States of America## This program is free software; you can redistribute it# and/or modify it under the terms of the GNU General# Public License version 2 as published by the Free# Software Foundation.## This program is distributed in the hope that it will# be useful, but WITHOUT ANY WARRANTY; without even the# implied warranty of MERCHANTABILITY or FITNESS FOR A# PARTICULAR PURPOSE. See the GNU General Public License# for more details.## Released under GNU Public License v2.0, available# at www.fsf.org. The author hereby disclaims all# warranties relating to this software, express or implied,# including with no limitation any implied warranties of# merchantability, quality performance, or fitness for a# particular purpose. The author and their distributors# shall not be liable for any special, incidental,# consequential, indirect or similar damages due to loss# of data, even if an agent of the author has been found# to be the source of loss or damage. In no event shall the# author's liability for any damages ever exceed the price# paid for the license to use software, regardless of the# form of the claim. The person using the software bears all# risk as to the quality and performance of the software.## Swim at your own risk!## This software program, documentation, accompanying# written and disk-based notes and specifications, and all# referenced and related program files, screen display# renditions, and text files, are the property of the# author.## The authors have done their best to insure that the# material found in this document is both useful and# accurate. However, please be aware that errors may exist,# the author does not make any guarantee concerning the# accuracy of the information found here or in the uses# to which it may be put.########################################################################## About:## The following PHP3 code provides a nice class interface for# html graphs. It provides a single, reasonably consistent# interface for creating HTML based graphs. The idea behind# this code is that the user of the class sets up four or five# arrays and pass these to html_graph() which then takes# care of all the messy HTML layout. I am reasonably happy# with the outcome of this interface. The HTML that must be# generated for HTML graphs *is* messy, and the interface is# very clean and flexible. I think that once you generate# one graph with it, you'll never look at creating HTML graphs# the same. The arrays that must be set up consist of:## * A names array containing column/row identifiers ($names)# * One or two values arrays containg corresponding # values to the column/row names ($values & $dvalues)# * One or two bars array which also corresponds to the names# array. The values in these arrays are URLS to graphics# or color codes starting with a # which will be used to# generate the graph bar. Color codes and graphics may# be mixed in the same chart, although color codes can't # be used on Vertical charts. ($bars & $dbars)# * The heart of customization... a vals array. If this # array isn't created then html_graphs will use all # default values for the chart. Items that are customizable# include font styles & colors, backgrounds, graphics, # labels, cellspacing, cellpadding, borders, anotations# and scaling factor. ($vals)########################################################################## Known Bugs:# # * Currently the $vals["background"] tag element doesn't # work in Netscape.######################################################################### # To Do: # # * Would like to make the $vals array to html_graph() completely# optional. Currently it has to at least be an empty array.########################################################################## Contributors:## Jan Diepens - Eindhoven University of Technologie# Jean-Pierre Arneodo########################################################################## Contact:## If you have questions, suggestions, bugs, bug fixes, or enhancements # please send them to pdavis@pobox.com so that they may be wrapped into # future versions of HTML_Graph.########################################################################## Examples:## See http://www.pobox.com/~pdavis/programs/########################################################################*//*######################################################################### Function: html_graph($names, $values, $bars, $vals[, $dvalues, $dbars]) ## Purpose: Calls routines to initialize defaults, set up table# print data, and close table.## Arguments: # $names - Array of element names.# $values - Array of corresponding values for elements.# $bars - Array of corresponding graphic image names # or color codes (begining with a #) for elements.# Color codes can't be used on vertical charts.# $dvalues - Array of corresponding values for elements.# This set is required only in the double graph.# $dbars - Array of corresponding graphic image names # or color codes (begining with a #) for elements.# This set is required only in the double graph.## $vals - array("vlabel"=>"",# "hlabel"=>"",# "type"=>"",# "cellpadding"=>"",# "cellspacing"=>"",# "border"=>"",# "width"=>"",# "background"=>"",# "vfcolor"=>"",# "hfcolor"=>"",# "vbgcolor"=>"",# "hbgcolor"=>"",# "vfstyle"=>"",# "hfstyle"=>"",# "noshowvals"=>"",# "scale"=>"",# "namebgcolor"=>"",# "valuebgcolor"=>"",# "namefcolor"=>"",# "valuefcolor"=>"",# "namefstyle"=>"",# "valuefstyle"=>"",# "doublefcolor"=>"")## Where:## vlabel - Vertical Label to apply# default is NUL# hlabel - Horizontal Label to apply# default is NUL# type - Type of graph # 0 = horizontal# 1 = vertical# 2 = double horizontal# 3 = double vertical # default is 0# cellpadding - Padding for the overall table# default is 0# cellspacing - Space for the overall table# default is 0# border - Border size for the overall table# default is 0# width - Width of the overall table# default is NUL# background - Background image for the overall table# If this value exists then no BGCOLOR# codes will be added to table elements.# default is NUL# vfcolor - Vertical label font color# default is #000000# hfcolor - Horizontal label font color# default is #000000# vbgcolor - Vertical label background color# Not used if background is set# default is #FFFFFF# hbgcolor - Horizontal label background color# Not used if background is set# default is #FFFFFF# vfstyle - Vertical label font style# default is NUL # hfstyle - Horizontal label font style# default is NUL # noshowvals - Don't show numeric value at end of graphic# Boolean value, default is FALSE# scale - Scale values by some number.# default is 1.# namebgcolor - Color code for element name cells# Not used if background is set# default is "#000000"# valuebgcolor - Color code for value cells# Not used if background is set# default is "#000000"# namefcolor - Color code for font of name element# default is "#FFFFFF"# valuefcolor - Color code for font of value element# default is "#000000"# namefstyle - Style code for font of name element# default is NUL # valuefstyle - Style code for font of value element# default is NUL # doublefcolor - Color code for font of second element value# default is "#886666"########################################################################*/function html_graph($names, $values, $bars, $vals, $dvalues=0, $dbars=0) { // Set the error level on entry and exit so as not to interfear // with anyone elses error checking. $er = error_reporting(1); // Set the values that the user didn't $vals = hv_graph_defaults($vals); start_graph($vals, $names); if ($vals["type"] == 0) { horizontal_graph($names, $values, $bars, $vals); } elseif ($vals["type"] == 1) { vertical_graph($names, $values, $bars, $vals); } elseif ($vals["type"] == 2) { double_horizontal_graph($names, $values, $bars, $vals, $dvalues, $dbars); } elseif ($vals["type"] == 3) { double_vertical_graph($names, $values, $bars, $vals, $dvalues, $dbars); } end_graph(); // Set the error level back to where it was. error_reporting($er); }/*####################################################################### ## Function: html_graph_init()## Purpose: Sets up the $vals array by initializing all values to # null. Used to avoid warnings from error_reporting being# set high. This routine only needs to be called if you # are woried about using uninitialized variables.# # Returns: The initialized $vals array# ####################################################################### */function html_graph_init() { $vals = array("vlabel"=>"", "hlabel"=>"", "type"=>"", "cellpadding"=>"", "cellspacing"=>"", "border"=>"", "width"=>"", "background"=>"", "vfcolor"=>"", "hfcolor"=>"", "vbgcolor"=>"", "hbgcolor"=>"", "vfstyle"=>"", "hfstyle"=>"", "noshowvals"=>"", "scale"=>"", "namebgcolor"=>"", "valuebgcolor"=>"", "namefcolor"=>"", "valuefcolor"=>"", "namefstyle"=>"", "valuefstyle"=>"", "doublefcolor"=>""); return($vals); }/*####################################################################### ## Function: start_graph($vals, $names)## Purpose: Prints out the table header and graph labels.######################################################################## */function start_graph($vals, $names) { print "<!-- Start Inner Graph Table -->\n\n<table"; print ' cellpadding="' . $vals["cellpadding"] . '"'; print ' cellspacing="' . $vals["cellspacing"] . '"'; print ' border="' . $vals["border"] . '"'; if ($vals["width"] != 0) { print ' width="' . $vals["width"] . '"'; } if ($vals["background"]) { print ' background="' . $vals["background"] . '"'; } print '>'; if (($vals["vlabel"]) || ($vals["hlabel"])) { if (($vals["type"] == 0) || ($vals["type"] == 2 ))// horizontal chart { $rowspan = SizeOf($names) + 1; $colspan = 3; } elseif ($vals["type"] == 1 || ($vals["type"] == 3 )) // vertical chart { $rowspan = 3; $colspan = SizeOf($names) + 1; } print '<tr><td align="center" valign="center" '; // If a background was choosen don't print cell BGCOLOR if (! $vals["background"]) { print 'style="background-color:' . $vals["hbgcolor"] . '"'; } print ' colspan="' . $colspan . '">'; print '<span style="color:' . $vals["hfcolor"] . '; ' . $vals["hfstyle"] . '">'; print "<strong>" . $vals["hlabel"] . "</strong>"; print '</span></td></tr>'; print '<tr><td align="center" valign="center" '; // If a background was choosen don't print cell BGCOLOR if (! $vals["background"]) { print 'style="background-color:' . $vals["vbgcolor"] . '"'; } print ' rowspan="' . $rowspan . '">'; print '<span style="color:' . $vals["vfcolor"] . '; ' . $vals["vfstyle"] . '">'; print "<strong>" . $vals["vlabel"] . "</strong>"; print '</span></td>'; } }/*####################################################################### ## Function: end_graph()## Purpose: Prints out the table footer.######################################################################## */function end_graph() { print "\n</table>\n\n<!-- end inner graph table -->\n\n"; }/*####################################################################### ## Function: hv_graph_defaults($vals)## Purpose: Sets the default values for the $vals array ######################################################################## */function hv_graph_defaults($vals)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?