⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 geshi.php

📁 一款基于PHP的网络日记程序。WikyBlog支持:多用户的 BLOG
💻 PHP
📖 第 1 页 / 共 5 页
字号:
     * @param string The language to highlight the source with     * @param string The path to the language file directory. <b>This     *               is deprecated!</b> I've backported the auto path     *               detection from the 1.1.X dev branch, so now it     *               should be automatically set correctly. If you have     *               renamed the language directory however, you will     *               still need to set the path using this parameter or     *               {@link GeSHi::set_language_path()}     * @since 1.0.0	 */	function GeSHi ($source, $language, $path = '')	{        $this->set_source($source);        $this->set_language_path($path);        $this->set_language($language);	}	/**	 * Returns an error message associated with the last GeSHi operation,	 * or false if no error has occured     *      * @return string|false An error message if there has been an error, else false     * @since  1.0.0	 */	function error ()	{		if ($this->error) {			$msg = $this->error_messages[$this->error];			$debug_tpl_vars = array(				'{LANGUAGE}' => $this->language,				'{PATH}' => $this->language_path			);			foreach ($debug_tpl_vars as $tpl => $var) {				$msg = str_replace($tpl, $var, $msg);			}			return "<br /><strong>GeSHi Error:</strong> $msg (code $this->error)<br />";		}		return false;	}	/**	 * Gets a human-readable language name (thanks to Simon Patterson	 * for the idea :))     *      * @return string The name for the current language     * @since  1.0.2	 */	function get_language_name ()	{		if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {			return $this->language_data['LANG_NAME'] . ' (Unknown Language)';		}		return $this->language_data['LANG_NAME'];	}	/**	 * Sets the source code for this object     *      * @param string The source code to highlight     * @since 1.0.0	 */	function set_source ($source)	{		$this->source = $source;        $this->highlight_extra_lines = array();	}	/**	 * Sets the language for this object     *      * @param string The name of the language to use     * @since 1.0.0	 */	function set_language ($language)	{        $this->error = false;        $this->strict_mode = GESHI_NEVER;        		$language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);		$this->language = strtolower($language);                $file_name = $this->language_path . $this->language . '.php';        if (!is_readable($file_name)) {            $this->error = GESHI_ERROR_NO_SUCH_LANG;            return;        }		// Load the language for parsing		$this->load_language($file_name);	}	/**	 * Sets the path to the directory containing the language files. Note	 * that this path is relative to the directory of the script that included	 * geshi.php, NOT geshi.php itself.     *      * @param string The path to the language directory     * @since 1.0.0     * @deprecated The path to the language files should now be automatically     *             detected, so this method should no longer be needed. The     *             1.1.X branch handles manual setting of the path differently     *             so this method will disappear in 1.2.0.	 */	function set_language_path ($path)	{        if ($path) {			$this->language_path = ('/' == substr($path, strlen($path) - 1, 1)) ? $path : $path . '/';			$this->set_language($this->language);	    // otherwise set_language_path has no effect        }	}	/**	 * Sets the type of header to be used.     *      * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This     * means more source code but more control over tab width and line-wrapping.     * GESHI_HEADER_PRE means that a "pre" is used - less source, but less     * control. Default is GESHI_HEADER_PRE.     *      * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code     * should be outputted.     *      * @param int The type of header to be used     * @since 1.0.0	 */	function set_header_type ($type)	{        if (GESHI_HEADER_DIV != $type && GESHI_HEADER_PRE != $type && GESHI_HEADER_NONE != $type) {            $this->error = GESHI_ERROR_INVALID_HEADER_TYPE;            return;        }		$this->header_type = $type;        // Set a default overall style if the header is a <div>        if (GESHI_HEADER_DIV == $type && !$this->overall_style) {            $this->overall_style = 'font-family: monospace;';        }	}	/**	 * Sets the styles for the code that will be outputted	 * when this object is parsed. The style should be a	 * string of valid stylesheet declarations     *      * @param string  The overall style for the outputted code block     * @param boolean Whether to merge the styles with the current styles or not     * @since 1.0.0	 */	function set_overall_style ($style, $preserve_defaults = false)	{		if (!$preserve_defaults) {			$this->overall_style = $style;		} else {			$this->overall_style .= $style;		}	}	/**	 * Sets the overall classname for this block of code. This	 * class can then be used in a stylesheet to style this object's	 * output     *      * @param string The class name to use for this block of code     * @since 1.0.0	 */	function set_overall_class ($class)	{		$this->overall_class = $class;	}	/**	 * Sets the overall id for this block of code. This id can then	 * be used in a stylesheet to style this object's output     *      * @param string The ID to use for this block of code     * @since 1.0.0	 */	function set_overall_id ($id)	{        $this->overall_id = $id;	}	/**     * Sets whether CSS classes should be used to highlight the source. Default     * is off, calling this method with no arguments will turn it on     *      * @param boolean Whether to turn classes on or not     * @since 1.0.0     */	function enable_classes ($flag = true)	{		$this->use_classes = ($flag) ? true : false;	}	/**	 * Sets the style for the actual code. This should be a string	 * containing valid stylesheet declarations. If $preserve_defaults is	 * true, then styles are merged with the default styles, with the	 * user defined styles having priority	 *	 * Note: Use this method to override any style changes you made to	 * the line numbers if you are using line numbers, else the line of	 * code will have the same style as the line number! Consult the	 * GeSHi documentation for more information about this.     *      * @param string  The style to use for actual code     * @param boolean Whether to merge the current styles with the new styles	 */	function set_code_style ($style, $preserve_defaults = false)	{        if (!$preserve_defaults) {            $this->code_style = $style;        } else {            $this->code_style .= $style;        }    }	/**	 * Sets the styles for the line numbers.     *      * @param string The style for the line numbers that are "normal"     * @param string|boolean If a string, this is the style of the line     *        numbers that are "fancy", otherwise if boolean then this     *        defines whether the normal styles should be merged with the     *        new normal styles or not     * @param boolean If set, is the flag for whether to merge the "fancy"     *        styles with the current styles or not     * @since 1.0.2	 */	function set_line_style ($style1, $style2 = '', $preserve_defaults = false)	{		if (is_bool($style2)) {			$preserve_defaults = $style2;			$style2 = '';		}		if (!$preserve_defaults) {			$this->line_style1 = $style1;			$this->line_style2 = $style2;		} else {			$this->line_style1 .= $style1;			$this->line_style2 .= $style2;		}	}	/**	 * Sets whether line numbers should be displayed.     *      * Valid values for the first parameter are:     *      * <ul>     *   <li><b>GESHI_NO_LINE_NUMBERS</b>: Line numbers will not be displayed</li>	 *   <li><b>GESHI_NORMAL_LINE_NUMBERS</b>: Line numbers will be displayed</li>     *   <li><b>GESHI_FANCY_LINE_NUMBERS</b>: Fancy line numbers will be displayed</li>     * </ul>     *      * For fancy line numbers, the second parameter is used to signal which lines     * are to be fancy. For example, if the value of this parameter is 5 then every     * 5th line will be fancy.     *      * @param int How line numbers should be displayed     * @param int Defines which lines are fancy     * @since 1.0.0	 */	function enable_line_numbers ($flag, $nth_row = 5)	{        if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag            && GESHI_FANCY_LINE_NUMBERS != $flag) {            $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE;        }		$this->line_numbers = $flag;		$this->line_nth_row = $nth_row;	}	/**	 * Sets the style for a keyword group. If $preserve_defaults is	 * true, then styles are merged with the default styles, with the	 * user defined styles having priority     *      * @param int     The key of the keyword group to change the styles of     * @param string  The style to make the keywords     * @param boolean Whether to merge the new styles with the old or just     *                to overwrite them     * @since 1.0.0	 */	function set_keyword_group_style ($key, $style, $preserve_defaults = false)	{		if (!$preserve_defaults) {			$this->language_data['STYLES']['KEYWORDS'][$key] = $style;		} else {			$this->language_data['STYLES']['KEYWORDS'][$key] .= $style;		}	}	/**	 * Turns highlighting on/off for a keyword group     *      * @param int     The key of the keyword group to turn on or off     * @param boolean Whether to turn highlighting for that group on or off     * @since 1.0.0	 */	function set_keyword_group_highlighting ( $key, $flag = true )	{		$this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;	}	/**	 * Sets the styles for comment groups.  If $preserve_defaults is	 * true, then styles are merged with the default styles, with the	 * user defined styles having priority     *      * @param int     The key of the comment group to change the styles of     * @param string  The style to make the comments     * @param boolean Whether to merge the new styles with the old or just     *                to overwrite them     * @since 1.0.0	 */	function set_comments_style ($key, $style, $preserve_defaults = false)	{		if (!$preserve_defaults) {			$this->language_data['STYLES']['COMMENTS'][$key] = $style;		} else {			$this->language_data['STYLES']['COMMENTS'][$key] .= $style;		}	}	/**	 * Turns highlighting on/off for comment groups     *      * @param int     The key of the comment group to turn on or off     * @param boolean Whether to turn highlighting for that group on or off     * @since 1.0.0	 */	function set_comments_highlighting ($key, $flag = true)	{		$this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;	}	/**	 * Sets the styles for escaped characters. If $preserve_defaults is	 * true, then styles are merged with the default styles, with the	 * user defined styles having priority     *      * @param string  The style to make the escape characters     * @param boolean Whether to merge the new styles with the old or just     *                to overwrite them     * @since 1.0.0	 */	function set_escape_characters_style ($style, $preserve_defaults = false)	{		if (!$preserve_defaults) {			$this->language_data['STYLES']['ESCAPE_CHAR'][0] = $style;		} else {			$this->language_data['STYLES']['ESCAPE_CHAR'][0] .= $style;		}	}	/**	 * Turns highlighting on/off for escaped characters     *      * @param boolean Whether to turn highlighting for escape characters on or off     * @since 1.0.0	 */	function set_escape_characters_highlighting ($flag = true)	{		$this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;	}	/**	 * Sets the styles for brackets. If $preserve_defaults is	 * true, then styles are merged with the default styles, with the	 * user defined styles having priority	 *	 * This method is DEPRECATED: use set_symbols_style instead.	 * This method will be removed in 1.2.X     *      * @param string  The style to make the brackets     * @param boolean Whether to merge the new styles with the old or just     *                to overwrite them     * @since 1.0.0     * @deprecated In favour of set_symbols_style	 */	function set_brackets_style ($style, $preserve_defaults = false)	{		if (!$preserve_defaults) {			$this->language_data['STYLES']['BRACKETS'][0] = $style;		} else {			$this->language_data['STYLES']['BRACKETS'][0] .= $style;		}	}	/**	 * Turns highlighting on/off for brackets	 *	 * This method is DEPRECATED: use set_symbols_highlighting instead.	 * This method will be remove in 1.2.X     *      * @param boolean Whether to turn highlighting for brackets on or off     * @since 1.0.0     * @deprecated In favour of set_symbols_highlighting	 */	function set_brackets_highlighting ($flag)	{		$this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;	}

⌨️ 快捷键说明

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