[ Index ]
 

Code source de Symfony 1.0.0

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/vendor/phing/util/ -> StringHelper.php (source)

   1  <?php
   2  
   3  /**
   4   * String helper utility class.
   5   *
   6   * This class includes some Java-like functions for parsing strings,
   7   * as well as some functions for getting qualifiers / unqualifying phing-style
   8   * classpaths.  (e.g. "phing.util.StringHelper").
   9   *
  10   * @author Hans Lellelid <hans@xmpl.org>
  11   * @package phing.system.util
  12   */
  13  class StringHelper {
  14  
  15      private static $TRUE_VALUES = array("on", "true", "t", "yes");
  16      private static $FALSE_VALUES = array("off", "false", "f", "no");
  17      
  18      /**
  19       * Replaces identifier tokens with corresponding text values in passed string.
  20       *
  21       * @params array $strings Array of strings to multiply. (If string is passed, will convert to array)
  22       * @params array $tokens The tokens to search for.
  23       * @params array $replacements The values with which to replace found tokens.
  24       * @return string
  25       */
  26      public static function multiply($strings, $tokens, $replacements) {
  27          $strings = (array) $strings;
  28          $results = array();
  29          foreach ($strings as $string) {
  30              $results[] = str_replace($tokens, $replacements, $string);
  31          }        
  32          return $results;
  33      }
  34  
  35      /**
  36       * Remove qualification to name.
  37       * E.g. eg.Cat -> Cat
  38       * @param string $qualifiedName
  39       * @param string $separator Character used to separate.
  40       */
  41      public static function unqualify($qualifiedName, $separator = '.') {
  42          // if false, then will be 0
  43          $pos = strrpos($qualifiedName, $separator);
  44          if ($pos === false) { 
  45              return $qualifiedName;  // there is no '.' in the qualifed name
  46          } else {
  47              return substr($qualifiedName, $pos + 1); // start just after '.'
  48          }
  49      }
  50  
  51      /** 
  52       * Converts a string to an indexed array of chars
  53       * There's really no reason for this to be used in PHP, since strings
  54       * are all accessible using the $string{0} notation.
  55       * @param string $string
  56       * @return array
  57       * @deprecated
  58       */
  59      public static function toCharArray($str) {
  60          $ret=array();
  61          $len=strlen($str);
  62          for ($i=0; $i < $len; $i++) {
  63              $ret[] = $str{$i};
  64          }
  65          return $ret;
  66      }
  67      
  68      /**
  69       * Get the qualifier part of a qualified name.
  70       * E.g. eg.Cat -> eg
  71       * @return string
  72       */    
  73      public static function qualifier($qualifiedName, $seperator = '.') {
  74          $pos = strrchr($qualifiedName, $seperator);
  75          if ($pos === false) {
  76              return '';
  77          } else {
  78              return substr($qualifiedName, 0, $pos);
  79          }
  80      }
  81      
  82      /**
  83       * @param array $columns String[]
  84       * @param string $prefix
  85       * @return array String[]
  86       */ 
  87      public static function prefix( $columns, $prefix) {
  88          if ($prefix == null) return $columns;
  89          $qualified = array();
  90          foreach($columns as $key => $column) {
  91              $qualified[$key] = $prefix . $column;
  92          }        
  93          return $qualified;
  94      }
  95      
  96      /**
  97       *
  98       * @return string
  99       */ 
 100      public static function root($qualifiedName, $separator = '.') {
 101          $loc = strpos($qualifiedName, $separator);
 102          return ($loc === false) ? $qualifiedName : substr($qualifiedName, 0, $loc);
 103      }
 104      
 105      /**
 106       * @return int
 107       */
 108      public static function hashCode($string) {
 109          return crc32($string);
 110      }
 111      
 112      /**
 113       * @return boolean
 114       */ 
 115      public static function booleanValue($s) {
 116          if (is_bool($s)) {
 117              return $s; // it's already boolean (not a string)
 118          }
 119          // otherwise assume it's something like "true" or "t"
 120          $trimmed = strtolower(trim($s));
 121          return (boolean) in_array($trimmed, self::$TRUE_VALUES);
 122      }
 123  
 124      /** tests if a string is a representative of a boolean */
 125      public static function isBoolean($s) {
 126  
 127          if (is_bool($s)) {
 128              return true; // it already is boolean
 129          }
 130          
 131          if ($s === "" || $s === null || !is_string($s)) {
 132              return false; // not a valid string for testing
 133          }
 134  
 135          $test = trim(strtolower($s));
 136          return (boolean) in_array($test, array_merge(self::$FALSE_VALUES, self::$TRUE_VALUES));
 137      }
 138          
 139      /**
 140       * Creates a key based on any number of passed params.
 141       * @return string
 142       */
 143      public static function key() {
 144          $args = func_get_args();
 145          return serialize($args);
 146      }    
 147      
 148      /** tests if a string starts with a given string */
 149      public static function startsWith($check, $string) {
 150          if ($check === "" || $check === $string) {
 151              return true;
 152          } else {
 153              return (strpos($string, $check) === 0) ? true : false;
 154          }
 155      }
 156      
 157      /** tests if a string ends with a given string */
 158      public static function endsWith($check, $string) {
 159          if ($check === "" || $check === $string) {
 160              return true;
 161          } else {
 162              return (strpos(strrev($string), strrev($check)) === 0) ? true : false;
 163          }
 164      }            
 165  
 166      /**
 167       * a natural way of getting a subtring, php's circular string buffer and strange
 168       * return values suck if you want to program strict as of C or friends 
 169       */
 170      public static function substring($string, $startpos, $endpos = -1) {
 171          $len    = strlen($string);
 172          $endpos = (int) (($endpos === -1) ? $len-1 : $endpos);
 173          if ($startpos > $len-1 || $startpos < 0) {
 174              trigger_error("substring(), Startindex out of bounds must be 0<n<$len", E_USER_ERROR);
 175          }
 176          if ($endpos > $len-1 || $endpos < $startpos) {
 177              trigger_error("substring(), Endindex out of bounds must be $startpos<n<".($len-1), E_USER_ERROR);
 178          }
 179          if ($startpos === $endpos) {
 180              return (string) $string{$startpos};
 181          } else {
 182              $len = $endpos-$startpos;
 183          }
 184          return substr($string, $startpos, $len+1);
 185      }
 186  
 187      /**
 188       * Does the value correspond to a slot variable?
 189       * @param string $value    
 190       */
 191      public static function isSlotVar($value) {
 192          $value = trim($value);
 193          if ($value === "") return false;
 194          return preg_match('/^%\{([\w\.\-]+)\}$/', $value);
 195      }
 196      
 197      /**
 198       * Extracts the variable name for a slot var in the format %{task.current_file}
 199       * @param string $var The var from build file.
 200       * @return string Extracted name part.
 201       */
 202      public static function slotVar($var) {
 203          return trim($var, '%{} ');
 204      }
 205      
 206  }
 207  
 208  
 209  ?>


Généré le : Fri Mar 16 22:42:14 2007 par Balluche grâce à PHPXref 0.7