upgrade to codeigniter 1.7.2 for f12
[www-register-wizard.git] / helpers / string_helper.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 /**
3  * CodeIgniter
4  *
5  * An open source application development framework for PHP 4.3.2 or newer
6  *
7  * @package             CodeIgniter
8  * @author              ExpressionEngine Dev Team
9  * @copyright   Copyright (c) 2008 - 2009, EllisLab, Inc.
10  * @license             http://codeigniter.com/user_guide/license.html
11  * @link                http://codeigniter.com
12  * @since               Version 1.0
13  * @filesource
14  */
15
16 // ------------------------------------------------------------------------
17
18 /**
19  * CodeIgniter String Helpers
20  *
21  * @package             CodeIgniter
22  * @subpackage  Helpers
23  * @category    Helpers
24  * @author              ExpressionEngine Dev Team
25  * @link                http://codeigniter.com/user_guide/helpers/string_helper.html
26  */
27
28 // ------------------------------------------------------------------------
29
30 /**
31  * Trim Slashes
32  *
33  * Removes any leading/traling slashes from a string:
34  *
35  * /this/that/theother/
36  *
37  * becomes:
38  *
39  * this/that/theother
40  *
41  * @access      public
42  * @param       string
43  * @return      string
44  */     
45 if ( ! function_exists('trim_slashes'))
46 {
47         function trim_slashes($str)
48         {
49                 return trim($str, '/');
50         } 
51 }
52         
53 // ------------------------------------------------------------------------
54
55 /**
56  * Strip Slashes
57  *
58  * Removes slashes contained in a string or in an array
59  *
60  * @access      public
61  * @param       mixed   string or array
62  * @return      mixed   string or array
63  */     
64 if ( ! function_exists('strip_slashes'))
65 {
66         function strip_slashes($str)
67         {
68                 if (is_array($str))
69                 {       
70                         foreach ($str as $key => $val)
71                         {
72                                 $str[$key] = strip_slashes($val);
73                         }
74                 }
75                 else
76                 {
77                         $str = stripslashes($str);
78                 }
79         
80                 return $str;
81         }
82 }
83
84 // ------------------------------------------------------------------------
85
86 /**
87  * Strip Quotes
88  *
89  * Removes single and double quotes from a string
90  *
91  * @access      public
92  * @param       string
93  * @return      string
94  */     
95 if ( ! function_exists('strip_quotes'))
96 {
97         function strip_quotes($str)
98         {
99                 return str_replace(array('"', "'"), '', $str);
100         }
101 }
102
103 // ------------------------------------------------------------------------
104
105 /**
106  * Quotes to Entities
107  *
108  * Converts single and double quotes to entities
109  *
110  * @access      public
111  * @param       string
112  * @return      string
113  */     
114 if ( ! function_exists('quotes_to_entities'))
115 {
116         function quotes_to_entities($str)
117         {       
118                 return str_replace(array("\'","\"","'",'"'), array("&#39;","&quot;","&#39;","&quot;"), $str);
119         }
120 }
121
122 // ------------------------------------------------------------------------
123 /**
124  * Reduce Double Slashes
125  *
126  * Converts double slashes in a string to a single slash,
127  * except those found in http://
128  *
129  * http://www.some-site.com//index.php
130  *
131  * becomes:
132  *
133  * http://www.some-site.com/index.php
134  *
135  * @access      public
136  * @param       string
137  * @return      string
138  */     
139 if ( ! function_exists('reduce_double_slashes'))
140 {
141         function reduce_double_slashes($str)
142         {
143                 return preg_replace("#([^:])//+#", "\\1/", $str);
144         }
145 }
146         
147 // ------------------------------------------------------------------------
148
149 /**
150  * Reduce Multiples
151  *
152  * Reduces multiple instances of a particular character.  Example:
153  *
154  * Fred, Bill,, Joe, Jimmy
155  *
156  * becomes:
157  *
158  * Fred, Bill, Joe, Jimmy
159  *
160  * @access      public
161  * @param       string
162  * @param       string  the character you wish to reduce
163  * @param       bool    TRUE/FALSE - whether to trim the character from the beginning/end
164  * @return      string
165  */     
166 if ( ! function_exists('reduce_multiples'))
167 {
168         function reduce_multiples($str, $character = ',', $trim = FALSE)
169         {
170                 $str = preg_replace('#'.preg_quote($character, '#').'{2,}#', $character, $str);
171
172                 if ($trim === TRUE)
173                 {
174                         $str = trim($str, $character);
175                 }
176
177                 return $str;
178         }
179 }
180         
181 // ------------------------------------------------------------------------
182
183 /**
184  * Create a Random String
185  *
186  * Useful for generating passwords or hashes.
187  *
188  * @access      public
189  * @param       string  type of random string.  Options: alunum, numeric, nozero, unique
190  * @param       integer number of characters
191  * @return      string
192  */
193 if ( ! function_exists('random_string'))
194 {       
195         function random_string($type = 'alnum', $len = 8)
196         {                                       
197                 switch($type)
198                 {
199                         case 'alnum'    :
200                         case 'numeric'  :
201                         case 'nozero'   :
202                 
203                                         switch ($type)
204                                         {
205                                                 case 'alnum'    :       $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
206                                                         break;
207                                                 case 'numeric'  :       $pool = '0123456789';
208                                                         break;
209                                                 case 'nozero'   :       $pool = '123456789';
210                                                         break;
211                                         }
212
213                                         $str = '';
214                                         for ($i=0; $i < $len; $i++)
215                                         {
216                                                 $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
217                                         }
218                                         return $str;
219                           break;
220                         case 'unique' : return md5(uniqid(mt_rand()));
221                           break;
222                 }
223         }
224 }
225
226 // ------------------------------------------------------------------------
227
228 /**
229  * Alternator
230  *
231  * Allows strings to be alternated.  See docs...
232  *
233  * @access      public
234  * @param       string (as many parameters as needed)
235  * @return      string
236  */     
237 if ( ! function_exists('alternator'))
238 {
239         function alternator()
240         {
241                 static $i;      
242
243                 if (func_num_args() == 0)
244                 {
245                         $i = 0;
246                         return '';
247                 }
248                 $args = func_get_args();
249                 return $args[($i++ % count($args))];
250         }
251 }
252
253 // ------------------------------------------------------------------------
254
255 /**
256  * Repeater function
257  *
258  * @access      public
259  * @param       string
260  * @param       integer number of repeats
261  * @return      string
262  */     
263 if ( ! function_exists('repeater'))
264 {
265         function repeater($data, $num = 1)
266         {
267                 return (($num > 0) ? str_repeat($data, $num) : '');
268         } 
269 }
270
271
272 /* End of file string_helper.php */
273 /* Location: ./system/helpers/string_helper.php */