[ Index ]
 

Code source de phpMyVisites 2.3

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/libs/smarty/plugins/ -> outputfilter.trimwhitespace.php (source)

   1  <?php
   2  /**
   3   * Smarty plugin
   4   * @package Smarty
   5   * @subpackage plugins
   6   */
   7  
   8  /**
   9   * Smarty trimwhitespace outputfilter plugin
  10   *
  11   * File:     outputfilter.trimwhitespace.php<br>
  12   * Type:     outputfilter<br>
  13   * Name:     trimwhitespace<br>
  14   * Date:     Jan 25, 2003<br>
  15   * Purpose:  trim leading white space and blank lines from
  16   *           template source after it gets interpreted, cleaning
  17   *           up code and saving bandwidth. Does not affect
  18   *           <<PRE>></PRE> and <SCRIPT></SCRIPT> blocks.<br>
  19   * Install:  Drop into the plugin directory, call
  20   *           <code>$smarty->load_filter('output','trimwhitespace');</code>
  21   *           from application.
  22   * @author   Monte Ohrt <monte at ohrt dot com>
  23   * @author Contributions from Lars Noschinski <lars@usenet.noschinski.de>
  24   * @version  1.3
  25   * @param string
  26   * @param Smarty
  27   */
  28  function smarty_outputfilter_trimwhitespace($source, &$smarty)
  29  {
  30      // Pull out the script blocks
  31      preg_match_all("!<script[^>]+>.*?</script>!is", $source, $match);
  32      $_script_blocks = $match[0];
  33      $source = preg_replace("!<script[^>]+>.*?</script>!is",
  34                             '@@@SMARTY:TRIM:SCRIPT@@@', $source);
  35  
  36      // Pull out the pre blocks
  37      preg_match_all("!<pre>.*?</pre>!is", $source, $match);
  38      $_pre_blocks = $match[0];
  39      $source = preg_replace("!<pre>.*?</pre>!is",
  40                             '@@@SMARTY:TRIM:PRE@@@', $source);
  41  
  42      // Pull out the textarea blocks
  43      preg_match_all("!<textarea[^>]+>.*?</textarea>!is", $source, $match);
  44      $_textarea_blocks = $match[0];
  45      $source = preg_replace("!<textarea[^>]+>.*?</textarea>!is",
  46                             '@@@SMARTY:TRIM:TEXTAREA@@@', $source);
  47  
  48      // remove all leading spaces, tabs and carriage returns NOT
  49      // preceeded by a php close tag.
  50      $source = trim(preg_replace('/((?<!\?>)\n)[\s]+/m', '\1', $source));
  51  
  52      // replace script blocks
  53      smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:SCRIPT@@@",$_script_blocks, $source);
  54  
  55      // replace pre blocks
  56      smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:PRE@@@",$_pre_blocks, $source);
  57  
  58      // replace textarea blocks
  59      smarty_outputfilter_trimwhitespace_replace("@@@SMARTY:TRIM:TEXTAREA@@@",$_textarea_blocks, $source);
  60  
  61      return $source;
  62  }
  63  
  64  function smarty_outputfilter_trimwhitespace_replace($search_str, $replace, &$subject) {
  65      $_len = strlen($search_str);
  66      $_pos = 0;
  67      for ($_i=0, $_count=count($replace); $_i<$_count; $_i++)
  68          if (($_pos=strpos($subject, $search_str, $_pos))!==false)
  69              $subject = substr_replace($subject, $replace[$_i], $_pos, $_len);
  70          else
  71              break;
  72  
  73  }
  74  
  75  ?>


Généré le : Mon Nov 26 14:10:01 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics