[ Index ]
 

Code source de Serendipity 1.2

Accédez au Source d'autres logiciels libres

title

Body

[fermer]

/bundled-libs/Text/Wiki/Parse/Default/ -> Include.php (source)

   1  <?php
   2  // $Id: Include.php,v 1.1 2005/01/31 15:46:52 pmjones Exp $
   3  
   4  
   5  /**
   6  * 
   7  * This class implements a Text_Wiki_Parse to include the results of a
   8  * script directly into the source at parse-time; thus, the output of the
   9  * script will be parsed by Text_Wiki.  This differs from the 'embed'
  10  * rule, which incorporates the results at render-time, meaning that the
  11  * 'embed' content is not parsed by Text_Wiki.
  12  *
  13  * DANGER!
  14  * 
  15  * This rule is inherently not secure; it allows cross-site scripting to
  16  * occur if the embedded output has <script> or other similar tags.  Be
  17  * careful.
  18  *
  19  * @author Paul M. Jones <pmjones@ciaweb.net>
  20  *
  21  * @package Text_Wiki
  22  *
  23  */
  24  
  25  class Text_Wiki_Parse_Include extends Text_Wiki_Parse {
  26      
  27      var $conf = array(
  28          'base' => '/path/to/scripts/'
  29      );
  30      
  31      var $file = null;
  32      
  33      var $output = null;
  34      
  35      var $vars = null;
  36  
  37      /**
  38      * 
  39      * The regular expression used to find source text matching this
  40      * rule.
  41      * 
  42      * @access public
  43      * 
  44      * @var string
  45      * 
  46      */
  47      
  48      var $regex = '/(\[\[include )(.+?)( .+?)?(\]\])/i';
  49      
  50      
  51      /**
  52      * 
  53      * Includes the results of the script directly into the source; the output
  54      * will subsequently be parsed by the remaining Text_Wiki rules.
  55      * 
  56      * @access public
  57      *
  58      * @param array &$matches The array of matches from parse().
  59      *
  60      * @return The results of the included script.
  61      *
  62      */
  63      
  64      function process(&$matches)
  65      {
  66          // save the file location
  67          $this->file = $this->getConf('base', './') . $matches[2];
  68  
  69          // extract attribs as variables in the local space
  70          $this->vars = $this->getAttrs($matches[3]);
  71          unset($this->vars['this']);
  72          extract($this->vars);
  73  
  74          // run the script
  75          ob_start();
  76          include($this->file);
  77          $this->output = ob_get_contents();
  78          ob_end_clean();
  79      
  80          // done, place the script output directly in the source
  81          return $this->output;
  82      }
  83  }
  84  ?>


Généré le : Sat Nov 24 09:00:37 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics