table.php

来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 247 行

PHP
247
字号
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2004 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 3.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available through the world-wide-web at the following url:           |// | http://www.php.net/license/3_0.txt.                                  |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors: Frederic Poeydomenge <fpoeydomenge at free dot fr>          |// +----------------------------------------------------------------------+//// $Id$require_once 'Var_Dump/Renderer/Common.php';/** * A concrete renderer for Var_Dump * * Returns a table-based representation of a variable in HTML * * @package Var_Dump * @category PHP * @author Frederic Poeydomenge <fpoeydomenge at free dot fr> */class Var_Dump_Renderer_Table extends Var_Dump_Renderer_Common{    /**     * Default configuration options.     *     * Valid configuration options are :     *     show_caption     : bool,    Show the caption or not     *     show_eol         : string,  String to insert before a newline, or false     *     before_num_key   : string,  Text to insert before a numerical key     *     after_num_key    : string,  Text to insert after a numerical key     *     before_str_key   : string,  Text to insert before a string key     *     after_str_key    : string,  Text to insert after a string key     *     before_type      : string,  Text to insert before a type     *     after_type       : string,  Text to insert after a type     *     before_value     : string,  Text to insert before a value     *     after_value      : string,  Text to insert after a value     *     start_table      : string,  Text to insert before the table     *     end_table        : string,  Text to insert after the table     *     start_tr         : string,  Text to insert before a row     *     end_tr           : string,  Text to insert after a row     *     start_tr_alt     : string,  Text to insert after an alternate row     *     end_tr_alt       : string,  Text to insert after an alternate row     *     start_td_key     : string,  Text to insert before the key cell     *     end_td_key       : string,  Text to insert after the key cell     *     start_td_type    : string,  Text to insert before the type cell     *     end_td_type      : string,  Text to insert after the type cell     *     start_td_value   : string,  Text to insert before the value cell     *     end_td_value     : string,  Text to insert after the value cell     *     start_td_colspan : string,  Text to insert before a group cell     *     end_td_colspan   : string,  Text to insert after a group cell     *     start_caption    : string,  Text to insert before the caption     *     end_caption      : string,  Text to insert after the caption     *     * @var array     * @access public     */    var $defaultOptions = array(        'show_caption'     => TRUE,        'show_eol'         => FALSE,        'before_num_key'   => '',        'after_num_key'    => '',        'before_str_key'   => '',        'after_str_key'    => '',        'before_type'      => '',        'after_type'       => '',        'before_value'     => '',        'after_value'      => '',        'start_table'      => '<table>',        'end_table'        => '</table>',        'start_tr'         => '<tr>',        'end_tr'           => '</tr>',        'start_tr_alt'     => '<tr>',        'end_tr_alt'       => '</tr>',        'start_td_key'     => '<td>',        'end_td_key'       => '</td>',        'start_td_type'    => '<td>',        'end_td_type'      => '</td>',        'start_td_value'   => '<td>',        'end_td_value'     => '</td>',        'start_td_colspan' => '<td colspan="2">',        'end_td_colspan'   => '</td>',        'start_caption'    => '<caption>',        'end_caption'      => '</caption>'    );    /**     * Class constructor.     *     * @param array $options Parameters for the rendering.     * @access public     */    function Var_Dump_Renderer_Table($options = array())    {        $this->setOptions($options);    }    /**     * Returns the string representation of a variable     *     * @return string The string representation of the variable.     * @access public     */    function toString()    {        if (count($this->family) == 1) {            return $this->_toString_Single();        } else {            return $this->_toString_Array();        }    }    /**     * Returns the string representation of a single variable     *     * @return string The string representation of a single variable.     * @access private     */    function _toString_Single()    {        $string = htmlspecialchars($this->value[0]);        if ($this->options['show_eol'] !== FALSE) {            $string = str_replace(                "\n",                $this->options['show_eol'] . "\n",                $string            );        }        return            $this->options['start_table'] .            $this->options['start_tr'] .            $this->options['start_td_type'] .            $this->options['before_type'] .            htmlspecialchars($this->type[0]) .            $this->options['after_type'] .            $this->options['end_td_type'] .            $this->options['start_td_value'] .            $this->options['before_value'] .            nl2br($string) .            $this->options['after_value'] .            $this->options['end_td_value'] .            $this->options['end_tr'] .            $this->options['end_table'];    }    /**     * Returns the string representation of a multiple variable     *     * @return string The string representation of a multiple variable.     * @access private     */    function _toString_Array()    {        $txt = '';        $stack = array(0);        $counter = count($this->family);        for ($c = 0 ; $c < $counter ; $c++) {            switch ($this->family[$c]) {                case VAR_DUMP_START_GROUP :                    array_push($stack, 0);                    if ($this->depth[$c] > 0) {                        $txt .= $this->options['start_td_colspan'];                    }                    $txt .= $this->options['start_table'];                    if ($this->options['show_caption']) {                        $txt .=                            $this->options['start_caption'] .                            htmlspecialchars($this->value[$c]) .                            $this->options['end_caption'];                    }                    break;                case VAR_DUMP_FINISH_GROUP :                    array_pop($stack);                    $txt .= $this->options['end_table'];                    if ($this->depth[$c] > 0) {                        $txt .=                            $this->options['end_td_colspan'] .                            $this->options['end_tr'];                    }                    break;                case VAR_DUMP_START_ELEMENT_NUM :                case VAR_DUMP_START_ELEMENT_STR :                    array_push($stack, 1 - array_pop($stack));                    $tr = (end($stack) == 1) ? 'start_tr' : 'start_tr_alt';                    $comp = ($this->family[$c] == VAR_DUMP_START_ELEMENT_NUM) ? 'num' : 'str';                    $txt .=                        $this->options[$tr] .                        $this->options['start_td_key'] .                        $this->options['before_'.$comp.'_key'] .                        htmlspecialchars($this->value[$c]) .                        $this->options['after_'.$comp.'_key'] .                        $this->options['end_td_key'];                    break;                case VAR_DUMP_FINISH_ELEMENT :                case VAR_DUMP_FINISH_STRING :                    $etr = (end($stack) == 1) ? 'end_tr' : 'end_tr_alt';                    if (!is_null($this->value[$c])) {                        $string = htmlspecialchars($this->value[$c]);                        if ($this->options['show_eol'] !== FALSE) {                            $string = str_replace(                                "\n",                                $this->options['show_eol'] . "\n",                                $string                            );                        }                        $txt .=                            $this->options['start_td_type'] .                            $this->options['before_type'] .                            htmlspecialchars($this->type[$c]) .                            $this->options['after_type'] .                            $this->options['end_td_type'] .                            $this->options['start_td_value'] .                            $this->options['before_value'] .                            nl2br($string) .                            $this->options['after_value'] .                            $this->options['end_td_value'] .                            $this->options[$etr];                    } else {                        $txt .=                            $this->options['start_td_colspan'] .                            $this->options['before_type'] .                            htmlspecialchars($this->type[$c]) .                            $this->options['after_type'] .                            $this->options['end_td_colspan'] .                            $this->options[$etr];                    }                    break;            }        }        return $txt;    }}?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?