tag.php

来自「一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:」· PHP 代码 · 共 1,418 行 · 第 1/3 页

PHP
1,418
字号
<?php    /**     *	Base include file for SimpleTest.     *	@package	SimpleTest     *	@subpackage	WebTester     *	@version	$Id: tag.php 163 2008-01-14 04:40:16Z matt $     */         /**#@+     * include SimpleTest files     */    require_once(dirname(__FILE__) . '/parser.php');    require_once(dirname(__FILE__) . '/encoding.php');    /**#@-*/       /**     *    HTML or XML tag.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleTag {        var $_name;        var $_attributes;        var $_content;                /**         *    Starts with a named tag with attributes only.         *    @param string $name        Tag name.         *    @param hash $attributes    Attribute names and         *                               string values. Note that         *                               the keys must have been         *                               converted to lower case.         */        function SimpleTag($name, $attributes) {            $this->_name = strtolower(trim($name));            $this->_attributes = $attributes;            $this->_content = '';        }                /**         *    Check to see if the tag can have both start and         *    end tags with content in between.         *    @return boolean        True if content allowed.         *    @access public         */        function expectEndTag() {            return true;        }                /**         *    The current tag should not swallow all content for         *    itself as it's searchable page content. Private         *    content tags are usually widgets that contain default         *    values.         *    @return boolean        False as content is available         *                           to other tags by default.         *    @access public         */        function isPrivateContent() {            return false;        }        /**         *    Appends string content to the current content.         *    @param string $content        Additional text.         *    @access public         */        function addContent($content) {            $this->_content .= (string)$content;        }                /**         *    Adds an enclosed tag to the content.         *    @param SimpleTag $tag    New tag.         *    @access public         */        function addTag(&$tag) {        }                /**         *    Accessor for tag name.         *    @return string       Name of tag.         *    @access public         */        function getTagName() {            return $this->_name;        }                /**         *    List of legal child elements.         *    @return array        List of element names.         *    @access public         */        function getChildElements() {            return array();        }                /**         *    Accessor for an attribute.         *    @param string $label    Attribute name.         *    @return string          Attribute value.         *    @access public         */        function getAttribute($label) {            $label = strtolower($label);            if (! isset($this->_attributes[$label])) {                return false;            }            return (string)$this->_attributes[$label];        }                /**         *    Sets an attribute.         *    @param string $label    Attribute name.         *    @return string $value   New attribute value.         *    @access protected         */        function _setAttribute($label, $value) {            $this->_attributes[strtolower($label)] = $value;        }                /**         *    Accessor for the whole content so far.         *    @return string       Content as big raw string.         *    @access public         */        function getContent() {            return $this->_content;        }                /**         *    Accessor for content reduced to visible text. Acts         *    like a text mode browser, normalising space and         *    reducing images to their alt text.         *    @return string       Content as plain text.         *    @access public         */        function getText() {            return SimpleHtmlSaxParser::normalise($this->_content);        }                /**         *    Test to see if id attribute matches.         *    @param string $id        ID to test against.         *    @return boolean          True on match.         *    @access public         */        function isId($id) {            return ($this->getAttribute('id') == $id);        }    }        /**     *    Base url.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleBaseTag extends SimpleTag {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleBaseTag($attributes) {            $this->SimpleTag('base', $attributes);        }		/**		 *    Base tag is not a block tag.		 *    @return boolean		false		 *    @access public		 */        function expectEndTag() {            return false;        }    }        /**     *    Page title.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleTitleTag extends SimpleTag {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleTitleTag($attributes) {            $this->SimpleTag('title', $attributes);        }    }        /**     *    Link.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleAnchorTag extends SimpleTag {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleAnchorTag($attributes) {            $this->SimpleTag('a', $attributes);        }                /**         *    Accessor for URL as string.         *    @return string    Coerced as string.         *    @access public         */        function getHref() {            $url = $this->getAttribute('href');            if (is_bool($url)) {                $url = '';            }            return $url;        }    }        /**     *    Form element.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleWidget extends SimpleTag {        var $_value;        var $_label;        var $_is_set;                /**         *    Starts with a named tag with attributes only.         *    @param string $name        Tag name.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleWidget($name, $attributes) {            $this->SimpleTag($name, $attributes);            $this->_value = false;            $this->_label = false;            $this->_is_set = false;        }                /**         *    Accessor for name submitted as the key in         *    GET/POST variables hash.         *    @return string        Parsed value.         *    @access public         */        function getName() {            return $this->getAttribute('name');        }                /**         *    Accessor for default value parsed with the tag.         *    @return string        Parsed value.         *    @access public         */        function getDefault() {            return $this->getAttribute('value');        }                /**         *    Accessor for currently set value or default if         *    none.         *    @return string      Value set by form or default         *                        if none.         *    @access public         */        function getValue() {            if (! $this->_is_set) {                return $this->getDefault();            }            return $this->_value;        }                /**         *    Sets the current form element value.         *    @param string $value       New value.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            $this->_value = $value;            $this->_is_set = true;            return true;        }                /**         *    Resets the form element value back to the         *    default.         *    @access public         */        function resetValue() {            $this->_is_set = false;        }                /**         *    Allows setting of a label externally, say by a         *    label tag.         *    @param string $label    Label to attach.         *    @access public         */        function setLabel($label) {            $this->_label = trim($label);        }                /**         *    Reads external or internal label.         *    @param string $label    Label to test.         *    @return boolean         True is match.         *    @access public         */        function isLabel($label) {            return $this->_label == trim($label);        }                /**         *    Dispatches the value into the form encoded packet.         *    @param SimpleEncoding $encoding    Form packet.         *    @access public         */        function write(&$encoding) {            if ($this->getName()) {                $encoding->add($this->getName(), $this->getValue());            }        }    }        /**     *    Text, password and hidden field.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleTextTag extends SimpleWidget {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleTextTag($attributes) {            $this->SimpleWidget('input', $attributes);            if ($this->getAttribute('value') === false) {                $this->_setAttribute('value', '');            }        }                /**         *    Tag contains no content.         *    @return boolean        False.         *    @access public         */        function expectEndTag() {            return false;        }                /**         *    Sets the current form element value. Cannot         *    change the value of a hidden field.         *    @param string $value       New value.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            if ($this->getAttribute('type') == 'hidden') {                return false;            }            return parent::setValue($value);        }    }        /**     *    Submit button as input tag.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleSubmitTag extends SimpleWidget {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleSubmitTag($attributes) {            $this->SimpleWidget('input', $attributes);            if ($this->getAttribute('value') === false) {                $this->_setAttribute('value', 'Submit');            }        }                /**         *    Tag contains no end element.         *    @return boolean        False.         *    @access public         */        function expectEndTag() {            return false;        }                /**         *    Disables the setting of the button value.         *    @param string $value       Ignored.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            return false;        }                /**         *    Value of browser visible text.         *    @return string        Visible label.         *    @access public         */        function getLabel() {            return $this->getValue();        }                /**         *    Test for a label match when searching.         *    @param string $label     Label to test.         *    @return boolean          True on match.         *    @access public         */        function isLabel($label) {            return trim($label) == trim($this->getLabel());        }    }          /**     *    Image button as input tag.	 *    @package SimpleTest	 *    @subpackage WebTester     */    class SimpleImageSubmitTag extends SimpleWidget {                /**         *    Starts with a named tag with attributes only.         *    @param hash $attributes    Attribute names and         *                               string values.         */        function SimpleImageSubmitTag($attributes) {            $this->SimpleWidget('input', $attributes);        }                /**         *    Tag contains no end element.         *    @return boolean        False.         *    @access public         */        function expectEndTag() {            return false;        }                /**         *    Disables the setting of the button value.         *    @param string $value       Ignored.         *    @return boolean            True if allowed.         *    @access public         */        function setValue($value) {            return false;        }                /**         *    Value of browser visible text.         *    @return string        Visible label.

⌨️ 快捷键说明

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