1<?php 2 3/** 4* 5* Parses for emphasized text. 6* 7* @category Text 8* 9* @package Text_Wiki 10* 11* @author Paul M. Jones <pmjones@php.net> 12* 13* @license LGPL 14* 15* @version $Id$ 16* 17*/ 18 19/** 20* 21* Parses for emphasized text. 22* 23* This class implements a Text_Wiki_Parse to find source text marked for 24* emphasis (italics) as defined by text surrounded by two single-quotes. 25* On parsing, the text itself is left in place, but the starting and ending 26* instances of two single-quotes are replaced with tokens. 27* 28* @category Text 29* 30* @package Text_Wiki 31* 32* @author Paul M. Jones <pmjones@php.net> 33* 34*/ 35 36class Text_Wiki_Parse_emphasis extends Text_Wiki_Parse { 37 38 39 /** 40 * 41 * The regular expression used to parse the source text and find 42 * matches conforming to this rule. Used by the parse() method. 43 * 44 * @access public 45 * 46 * @var string 47 * 48 * @see parse() 49 * 50 */ 51 52 var $regex = "/\/\/(.*?)\/\//"; 53 54 55 /** 56 * 57 * Generates a replacement for the matched text. Token options are: 58 * 59 * 'type' => ['start'|'end'] The starting or ending point of the 60 * emphasized text. The text itself is left in the source. 61 * 62 * @access public 63 * 64 * @param array &$matches The array of matches from parse(). 65 * 66 * @return string A pair of delimited tokens to be used as a 67 * placeholder in the source text surrounding the text to be 68 * emphasized. 69 * 70 */ 71 72 function process(&$matches) 73 { 74 $start = $this->wiki->addToken( 75 $this->rule, array('type' => 'start') 76 ); 77 78 $end = $this->wiki->addToken( 79 $this->rule, array('type' => 'end') 80 ); 81 82 return $start . $matches[1] . $end; 83 } 84} 85?>