中国源码站下载

源代码在线查看: phpcode.php

软件大小: 1259 K
上传用户: changke8311
关键词: 源码
下载地址: 免注册下载 普通下载 VIP

相关代码

								/* 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 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.               |				// +----------------------------------------------------------------------+				// | Authors: Paul M. Jones                           |				// +----------------------------------------------------------------------+				//				// $Id: phpcode.php,v 1.1 2004/02/26 11:27:54 garvinhicking Exp $												/**				* 				* This class implements a Text_Wiki_Rule to find sections marked as code				* examples.  Blocks are marked as the string  on a line by itself,				* followed by the inline code example, and terminated with the string				*  on a line by itself.  The code example is run through the				* native PHP highlight_string() function to colorize it, then surrounded				* with ... tags when rendered as XHTML.				*				* @author Paul M. Jones 				*				* @package Text_Wiki				*				*/								class Text_Wiki_Rule_phpcode extends Text_Wiki_Rule {				    				    				    /**				    * 				    * The regular expression used to find source text matching this				    * rule.				    * 				    * @access public				    * 				    * @var string				    * 				    */				    				    var $regex = '/^(\)\n(.+)\n(\)(\s|$)/Umsi';				    				    				    /**				    * 				    * Generates a token entry for the matched text.  Token options are:				    * 				    * 'text' => The full matched text, not including the  tags.				    * 				    * @access public				    *				    * @param array &$matches The array of matches from parse().				    *				    * @return A delimited token number to be used as a placeholder in				    * the source text.				    *				    */				    				    function process(&$matches)				    {    				        $options = array('text' => $matches[2]);				        return $this->addToken($options) . $matches[4];				    }				    				    				    /**				    * 				    * Renders a token into text matching the requested format.				    * 				    * @access public				    * 				    * @param array $options The "options" portion of the token (second				    * element).				    * 				    * @return string The text rendered from the token options.				    * 				    */				    				    function renderXhtml($options)				    {						// add the PHP tags						$text = "												// convert tabs to four spaces						$text = str_replace("\t", "    ", $text);												// colorize the code block (also converts HTML entities and adds						// ... tags)						ob_start();						highlight_string($text);						$text = ob_get_contents();						ob_end_clean();												// replace  tags with simple newlines						$text = str_replace("", "\n", $text);												// replace non-breaking space with simple spaces						$text = str_replace(" ", " ", $text);												// get rid of the last newline inside the code block						// (becuase higlight_string puts one there)						if (substr($text, -8) == "\n") {							$text = substr($text, 0, -8) . "";						}												return "\n$text\n";				    }				}				?>			

相关资源