PHP_Compat
[ class tree: PHP_Compat ] [ index: PHP_Compat ] [ all elements ]

Source for file php_strip_whitespace.php

Documentation is available at php_strip_whitespace.php

  1. <?php
  2. // $Id: php_strip_whitespace.php,v 1.13 2007/04/17 10:09:56 arpad Exp $
  3.  
  4.  
  5. /**
  6.  * Replace T_DOC_COMMENT in PHP 4
  7.  */
  8. if (!defined('T_ML_COMMENT')) {
  9.    define('T_ML_COMMENT'T_COMMENT);
  10. else {
  11.    define('T_DOC_COMMENT'T_ML_COMMENT);
  12. }
  13.  
  14.  
  15. /**
  16.  * Replace php_strip_whitespace()
  17.  *
  18.  * @category    PHP
  19.  * @package     PHP_Compat
  20.  * @license     LGPL - http://www.gnu.org/licenses/lgpl.html
  21.  * @copyright   2004-2007 Aidan Lister <aidan@php.net>, Arpad Ray <arpad@php.net>
  22.  * @link        http://php.net/function.php_strip_whitespace
  23.  * @author      Aidan Lister <aidan@php.net>
  24.  * @version     $Revision: 1.13 $
  25.  * @since       PHP 5
  26.  * @require     PHP 4.0.0 (user_error) + Tokenizer extension
  27.  */
  28. {
  29.     // Sanity check
  30.     if (!is_scalar($file)) {
  31.         user_error('php_strip_whitespace() expects parameter 1 to be string, ' .
  32.             gettype($file' given'E_USER_WARNING);
  33.         return;
  34.     }
  35.  
  36.     // Load file / tokens
  37.     $source implode(''file($file));
  38.     $tokens token_get_all($source);
  39.  
  40.     // Init
  41.     $source '';
  42.     $was_ws = false;
  43.  
  44.     // Process
  45.     foreach ($tokens as $token{
  46.         if (is_string($token)) {
  47.             // Single character tokens
  48.             $source .= $token;
  49.         else {
  50.             list($id$text$token;
  51.             
  52.             switch ($id{
  53.                 // Skip all comments
  54.                 case T_COMMENT:
  55.                 case T_ML_COMMENT:
  56.                 case T_DOC_COMMENT:
  57.                     break;
  58.  
  59.                 // Remove whitespace
  60.                 case T_WHITESPACE:
  61.                     // We don't want more than one whitespace in a row replaced
  62.                     if ($was_ws !== true{
  63.                         $source .= ' ';
  64.                     }
  65.                     $was_ws = true;
  66.                     break;
  67.  
  68.                 default:
  69.                     $was_ws = false;
  70.                     $source .= $text;
  71.                     break;
  72.             }
  73.         }
  74.     }
  75.  
  76.     return $source;
  77.  
  78. }
  79.  
  80.  
  81. // Define
  82. if (!function_exists('php_strip_whitespace')) {
  83.     function php_strip_whitespace($file)
  84.     {
  85.         return php_compat_php_strip_whitespace($file);
  86.     }
  87. }

Documentation generated on Mon, 11 Mar 2019 15:26:35 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.