]> jfr.im git - z_archive/KronOS.git/blob - system/helpers/string_helper.php
Fixing filestructure again
[z_archive/KronOS.git] / system / 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 5.1.6 or newer
6 *
7 * @package CodeIgniter
8 * @author ExpressionEngine Dev Team
9 * @copyright Copyright (c) 2008 - 2011, 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/trailing 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 /**
125 * Reduce Double Slashes
126 *
127 * Converts double slashes in a string to a single slash,
128 * except those found in http://
129 *
130 * http://www.some-site.com//index.php
131 *
132 * becomes:
133 *
134 * http://www.some-site.com/index.php
135 *
136 * @access public
137 * @param string
138 * @return string
139 */
140 if ( ! function_exists('reduce_double_slashes'))
141 {
142 function reduce_double_slashes($str)
143 {
144 return preg_replace("#(^|[^:])//+#", "\\1/", $str);
145 }
146 }
147
148 // ------------------------------------------------------------------------
149
150 /**
151 * Reduce Multiples
152 *
153 * Reduces multiple instances of a particular character. Example:
154 *
155 * Fred, Bill,, Joe, Jimmy
156 *
157 * becomes:
158 *
159 * Fred, Bill, Joe, Jimmy
160 *
161 * @access public
162 * @param string
163 * @param string the character you wish to reduce
164 * @param bool TRUE/FALSE - whether to trim the character from the beginning/end
165 * @return string
166 */
167 if ( ! function_exists('reduce_multiples'))
168 {
169 function reduce_multiples($str, $character = ',', $trim = FALSE)
170 {
171 $str = preg_replace('#'.preg_quote($character, '#').'{2,}#', $character, $str);
172
173 if ($trim === TRUE)
174 {
175 $str = trim($str, $character);
176 }
177
178 return $str;
179 }
180 }
181
182 // ------------------------------------------------------------------------
183
184 /**
185 * Create a Random String
186 *
187 * Useful for generating passwords or hashes.
188 *
189 * @access public
190 * @param string type of random string. basic, alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1
191 * @param integer number of characters
192 * @return string
193 */
194 if ( ! function_exists('random_string'))
195 {
196 function random_string($type = 'alnum', $len = 8)
197 {
198 switch($type)
199 {
200 case 'basic' : return mt_rand();
201 break;
202 case 'alnum' :
203 case 'numeric' :
204 case 'nozero' :
205 case 'alpha' :
206
207 switch ($type)
208 {
209 case 'alpha' : $pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
210 break;
211 case 'alnum' : $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
212 break;
213 case 'numeric' : $pool = '0123456789';
214 break;
215 case 'nozero' : $pool = '123456789';
216 break;
217 }
218
219 $str = '';
220 for ($i=0; $i < $len; $i++)
221 {
222 $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
223 }
224 return $str;
225 break;
226 case 'unique' :
227 case 'md5' :
228
229 return md5(uniqid(mt_rand()));
230 break;
231 case 'encrypt' :
232 case 'sha1' :
233
234 $CI =& get_instance();
235 $CI->load->helper('security');
236
237 return do_hash(uniqid(mt_rand(), TRUE), 'sha1');
238 break;
239 }
240 }
241 }
242
243 // ------------------------------------------------------------------------
244
245 /**
246 * Add's _1 to a string or increment the ending number to allow _2, _3, etc
247 *
248 * @param string $str required
249 * @param string $separator What should the duplicate number be appended with
250 * @param string $first Which number should be used for the first dupe increment
251 * @return string
252 */
253 function increment_string($str, $separator = '_', $first = 1)
254 {
255 preg_match('/(.+)'.$separator.'([0-9]+)$/', $str, $match);
256
257 return isset($match[2]) ? $match[1].$separator.($match[2] + 1) : $str.$separator.$first;
258 }
259
260 // ------------------------------------------------------------------------
261
262 /**
263 * Alternator
264 *
265 * Allows strings to be alternated. See docs...
266 *
267 * @access public
268 * @param string (as many parameters as needed)
269 * @return string
270 */
271 if ( ! function_exists('alternator'))
272 {
273 function alternator()
274 {
275 static $i;
276
277 if (func_num_args() == 0)
278 {
279 $i = 0;
280 return '';
281 }
282 $args = func_get_args();
283 return $args[($i++ % count($args))];
284 }
285 }
286
287 // ------------------------------------------------------------------------
288
289 /**
290 * Repeater function
291 *
292 * @access public
293 * @param string
294 * @param integer number of repeats
295 * @return string
296 */
297 if ( ! function_exists('repeater'))
298 {
299 function repeater($data, $num = 1)
300 {
301 return (($num > 0) ? str_repeat($data, $num) : '');
302 }
303 }
304
305
306 /* End of file string_helper.php */
307 /* Location: ./system/helpers/string_helper.php */