css.php

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

PHP
347
字号
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997 - 2003 The PHP Group                              |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license,       |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.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.               |// +----------------------------------------------------------------------+// | Author:  Klaus Guenther <klaus@capitalfocus.org>                     |// +----------------------------------------------------------------------+//// $Id: CSS.php,v 1.1 2003/07/31 14:58:18 thesaur Exp $require_once "HTML/Common.php";/** * Base class for CSS definitions * * This class handles the details for creating properly constructed CSS declarations. * * Example for direct output of stylesheet: * <code> * require_once 'HTML/CSS.php'; *  * $css = new HTML_CSS(); *  * // define styles * $css->setStyle('body', 'background-color', '#0c0c0c'); * $css->setStyle('body', 'color', '#ffffff'); * $css->setStyle('h1', 'text-align', 'center'); * $css->setStyle('h1', 'font', '16pt helvetica, arial, sans-serif'); * $css->setStyle('p', 'font', '12pt helvetica, arial, sans-serif'); * * // output the stylesheet directly to browser * $css->display(); * </code> * * Example in combination with HTML_Page: * <code> * require_once 'HTML/Page.php'; * require_once 'HTML/CSS.php'; *  * $css = new HTML_CSS(); * $css->setStyle('body', 'background-color', '#0c0c0c'); * $css->setStyle('body', 'color', '#ffffff'); * $css->setStyle('h1', 'text-align', 'center'); * $css->setStyle('h1', 'font', '16pt helvetica, arial, sans-serif'); * $css->setStyle('p', 'font', '12pt helvetica, arial, sans-serif'); * * $p = new HTML_Page(); * * $p->setTitle("My page"); * // it can be added as an object * $p->addStyleDeclaration('text/css', &$css); * $p->addMetaData("author", "My Name"); * $p->addBodyContent = "<h1>headline</h1>"; * $p->addBodyContent = "<p>some text</p>"; * $p->addBodyContent = "<p>some more text</p>"; * $p->addBodyContent = "<p>yet even more text</p>"; * $p->display(); * </code> *  * Example for generating inline code: * <code> * require_once 'HTML/CSS.php'; *  * $css = new HTML_CSS(); *  * $css->setStyle('body', 'background-color', '#0c0c0c'); * $css->setStyle('body', 'color', '#ffffff'); * $css->setStyle('h1', 'text-align', 'center'); * $css->setStyle('h1', 'font', '16pt helvetica, arial, sans-serif'); * $css->setStyle('p', 'font', '12pt helvetica, arial, sans-serif'); * $css->setSameStyle('body', 'p'); *  * echo '<body style="' . $css->toInline('body') . '">'; * // will output: * // <body style="font:12pt helvetica, arial, sans-serif;background-color:#0c0c0c;color:#ffffff;"> * </code> * * @author       Klaus Guenther <klaus@capitalfocus.org> * @version      0.1.0 */class HTML_CSS extends HTML_Common {        /**     * Contains the content of the &lt;body&gt; tag.     *     * @var     array     * @access  private     */    var $_css = array('body'=>array(                                    'background-color'=>'#ffffff'                                    ));        /**     * Contains "alibis" (other elements that share a definition) of an element defined in CSS     *     * @var     array     * @access  private     */    var $_alibis = array();        /**     * Controls caching of the page     *     * @var     bool     * @access  private     */    var $_cache = true;        /**     * Contains the character encoding string     *     * @var     string     * @access  private     */    var $_charset = 'iso-8859-1';        /**     * Class constructor     *     * @access  public     */    function HTML_CSS()    {        $commonVersion = 1.7;        if (HTML_Common::apiVersion() < $commonVersion) {            return PEAR::raiseError("HTML_CSS version " . $this->apiVersion() . " requires " .            "HTML_Common version 1.2 or greater.", 0, PEAR_ERROR_TRIGGER);        }    }        /**     * Returns the current API version     *     * @access   public     * @returns  double     */    function apiVersion()    {        return 0.1;    } // end func apiVersion        /**     * Sets or adds a CSS definition     *     * @param    string  $element   Element (or class) to be defined     * @param    string  $property  Property defined     * @param    string  $value     Value assigned     * @access   public     */    function setStyle ($element, $property, $value)    {        $this->_css[$element][$property]= $value;    } // end func setStyle        /**     * Sets or adds a CSS definition     *     * @param    string  $element   Element (or class) to be defined     * @param    string  $others    Other elements that share the definitions, separated by commas     * @access   public     */    function setSameStyle ($others, $element)    {        $others =  explode(',', $others);        foreach ($others as $other) {            $other = trim($other);            $this->_css[$element]['other-elements'][] = $other;            $this->_alibis[$other][] = $element;        }    } // end func setSameStyle        /**     * Defines if the document should be cached by the browser. Defaults to false.     *     * @param string $cache Options are currently 'true' or 'false'. Defaults to 'true'.     * @access public     */    function setCache($cache = 'true')    {        if ($cache == 'true'){            $this->_cache = true;        } else {            $this->_cache = false;        }    } // end func setCache        /**     * Defines the charset for the file. defaults to ISO-8859-1 because of CSS1     * compatability issue for older browsers.     *     * @param string $type Charset encoding; defaults to ISO-8859-1.     * @access public     */    function setCharset($type = 'iso-8859-1')    {        $this->_charset = $type;    } // end func setCharset        /**     * Returns the charset encoding string     *     * @access public     */    function getCharset()    {        return $this->_charset;    } // end func getCharset        /**     * Generates and returns the array of CSS properties     *     * @return  array     * @access  public     */    function toArray()    {        return $this->_css;    } // end func toArray        /**     * Generates and returns the CSS properties of an element or class as a string for inline use.     *     * @param   string  $element    Element or class for which inline CSS should be generated     * @return  string     * @access  public     */    function toInline($element)    {                $strCss = '';        $newCssArray = '';                // Iterate through the array of properties for the supplied element        // This allows for grouped elements definitions to work        if ($this->_alibis[$element]) {            $alibis = $this->_alibis[$element];            foreach ($alibis as $int => $newElement) {                foreach ($this->_css[$newElement] as $key => $value) {                    if ($key != 'other-elements') {                        $newCssArray[$key] = $value;                    }                }            }        }                // The reason this comes second is because if something is defined twice,        // the value specifically assigned to this element should override        // values inherited from other element definitions        if ($this->_css[$element]) {            foreach ($this->_css[$element] as $key => $value) {                if ($key != 'other-elements') {                    $newCssArray[$key] = $value;                }            }        }                foreach ($newCssArray as $key => $value) {            $strCss .= $key . ':' . $value . ";";        }                // Let's roll!        return $strCss;    } // end func toInline        /**     * Generates and returns the complete CSS as a string.     *     * @return string     * @access public     */    function toString()    {                // get line endings        $lnEnd = $this->_getLineEnd();        $tabs = $this->_getTabs();        $tab = $this->_getTab();                $strCss = '';                // Allow a CSS comment        if ($this->_comment) {            $strCss = $tabs . '/* ' . $this->getComment() . ' */' . $lnEnd;        }                // Iterate through the array and process each element        foreach ($this->_css as $element => $property) {            $strCss .= $lnEnd;            $alibis = '';            if (isset($property['other-elements']) && is_array($property['other-elements'])){                foreach ($property['other-elements'] as $int => $other) {                    $alibis .= "$other, ";                }            }            //start CSS element definition            $strCss .= $tabs . $alibis . $element . ' {' . $lnEnd;                        foreach ($property as $key => $value) {                if ($key != 'other-elements') {                    $strCss .= $tabs . $tab . $key . ': ' . $value . ';' . $lnEnd;                }            }                        // end CSS element definition            $strCss .= $tabs . '}' . $lnEnd;        }                // Let's roll!        return $strCss;    } // end func toString        /**     * Outputs the stylesheet to the browser.     *     * @access    public     */    function display()    {                $lnEnd = $this->_getLineEnd();                if(! $this->_cache) {            header("Expires: Tue, 1 Jan 1980 12:00:00 GMT");            header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");            header("Cache-Control: no-cache");            header("Pragma: no-cache");        }                // set character encoding        header("Content-Type: text/css; charset=" . $this->_charset);                $strCss = $this->toString();        print $strCss;    } // end func display    }?>

⌨️ 快捷键说明

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