290 行
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			290 行
		
	
	
	
		
			5.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | ||
|  | /** | ||
|  |  * CodeIgniter | ||
|  |  * | ||
|  |  * An open source application development framework for PHP 5.1.6 or newer | ||
|  |  * | ||
|  |  * @package		CodeIgniter | ||
|  |  * @author		ExpressionEngine Dev Team | ||
|  |  * @copyright	Copyright (c) 2008 - 2011, EllisLab, Inc. | ||
|  |  * @license		http://codeigniter.com/user_guide/license.html | ||
|  |  * @link		http://codeigniter.com | ||
|  |  * @since		Version 1.0 | ||
|  |  * @filesource | ||
|  |  */ | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * CodeIgniter String Helpers | ||
|  |  * | ||
|  |  * @package		CodeIgniter | ||
|  |  * @subpackage	Helpers | ||
|  |  * @category	Helpers | ||
|  |  * @author		ExpressionEngine Dev Team | ||
|  |  * @link		http://codeigniter.com/user_guide/helpers/string_helper.html | ||
|  |  */ | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Trim Slashes | ||
|  |  * | ||
|  |  * Removes any leading/trailing slashes from a string: | ||
|  |  * | ||
|  |  * /this/that/theother/ | ||
|  |  * | ||
|  |  * becomes: | ||
|  |  * | ||
|  |  * this/that/theother | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('trim_slashes')) | ||
|  | { | ||
|  | 	function trim_slashes($str) | ||
|  | 	{ | ||
|  | 		return trim($str, '/'); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Strip Slashes | ||
|  |  * | ||
|  |  * Removes slashes contained in a string or in an array | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	mixed	string or array | ||
|  |  * @return	mixed	string or array | ||
|  |  */ | ||
|  | if ( ! function_exists('strip_slashes')) | ||
|  | { | ||
|  | 	function strip_slashes($str) | ||
|  | 	{ | ||
|  | 		if (is_array($str)) | ||
|  | 		{ | ||
|  | 			foreach ($str as $key => $val) | ||
|  | 			{ | ||
|  | 				$str[$key] = strip_slashes($val); | ||
|  | 			} | ||
|  | 		} | ||
|  | 		else | ||
|  | 		{ | ||
|  | 			$str = stripslashes($str); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return $str; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Strip Quotes | ||
|  |  * | ||
|  |  * Removes single and double quotes from a string | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('strip_quotes')) | ||
|  | { | ||
|  | 	function strip_quotes($str) | ||
|  | 	{ | ||
|  | 		return str_replace(array('"', "'"), '', $str); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Quotes to Entities | ||
|  |  * | ||
|  |  * Converts single and double quotes to entities | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('quotes_to_entities')) | ||
|  | { | ||
|  | 	function quotes_to_entities($str) | ||
|  | 	{ | ||
|  | 		return str_replace(array("\'","\"","'",'"'), array("'",""","'","""), $str); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Reduce Double Slashes | ||
|  |  * | ||
|  |  * Converts double slashes in a string to a single slash, | ||
|  |  * except those found in http:// | ||
|  |  * | ||
|  |  * http://www.some-site.com//index.php
 | ||
|  |  * | ||
|  |  * becomes: | ||
|  |  * | ||
|  |  * http://www.some-site.com/index.php | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('reduce_double_slashes')) | ||
|  | { | ||
|  | 	function reduce_double_slashes($str) | ||
|  | 	{ | ||
|  | 		return preg_replace("#(^|[^:])//+#", "\\1/", $str); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Reduce Multiples | ||
|  |  * | ||
|  |  * Reduces multiple instances of a particular character.  Example: | ||
|  |  * | ||
|  |  * Fred, Bill,, Joe, Jimmy | ||
|  |  * | ||
|  |  * becomes: | ||
|  |  * | ||
|  |  * Fred, Bill, Joe, Jimmy | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @param	string	the character you wish to reduce | ||
|  |  * @param	bool	TRUE/FALSE - whether to trim the character from the beginning/end | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('reduce_multiples')) | ||
|  | { | ||
|  | 	function reduce_multiples($str, $character = ',', $trim = FALSE) | ||
|  | 	{ | ||
|  | 		$str = preg_replace('#'.preg_quote($character, '#').'{2,}#', $character, $str); | ||
|  | 
 | ||
|  | 		if ($trim === TRUE) | ||
|  | 		{ | ||
|  | 			$str = trim($str, $character); | ||
|  | 		} | ||
|  | 
 | ||
|  | 		return $str; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Create a Random String | ||
|  |  * | ||
|  |  * Useful for generating passwords or hashes. | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string	type of random string.  basic, alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1 | ||
|  |  * @param	integer	number of characters | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('random_string')) | ||
|  | { | ||
|  | 	function random_string($type = 'alnum', $len = 8) | ||
|  | 	{ | ||
|  | 		switch($type) | ||
|  | 		{ | ||
|  | 			case 'basic'	: return mt_rand(); | ||
|  | 				break; | ||
|  | 			case 'alnum'	: | ||
|  | 			case 'numeric'	: | ||
|  | 			case 'nozero'	: | ||
|  | 			case 'alpha'	: | ||
|  | 
 | ||
|  | 					switch ($type) | ||
|  | 					{ | ||
|  | 						case 'alpha'	:	$pool = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
|  | 							break; | ||
|  | 						case 'alnum'	:	$pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
|  | 							break; | ||
|  | 						case 'numeric'	:	$pool = '0123456789'; | ||
|  | 							break; | ||
|  | 						case 'nozero'	:	$pool = '123456789'; | ||
|  | 							break; | ||
|  | 					} | ||
|  | 
 | ||
|  | 					$str = ''; | ||
|  | 					for ($i=0; $i < $len; $i++) | ||
|  | 					{ | ||
|  | 						$str .= substr($pool, mt_rand(0, strlen($pool) -1), 1); | ||
|  | 					} | ||
|  | 					return $str; | ||
|  | 				break; | ||
|  | 			case 'unique'	: | ||
|  | 			case 'md5'		: | ||
|  | 
 | ||
|  | 						return md5(uniqid(mt_rand())); | ||
|  | 				break; | ||
|  | 			case 'encrypt'	: | ||
|  | 			case 'sha1'	: | ||
|  | 
 | ||
|  | 						$CI =& get_instance(); | ||
|  | 						$CI->load->helper('security'); | ||
|  | 
 | ||
|  | 						return do_hash(uniqid(mt_rand(), TRUE), 'sha1'); | ||
|  | 				break; | ||
|  | 		} | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Alternator | ||
|  |  * | ||
|  |  * Allows strings to be alternated.  See docs... | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string (as many parameters as needed) | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('alternator')) | ||
|  | { | ||
|  | 	function alternator() | ||
|  | 	{ | ||
|  | 		static $i; | ||
|  | 
 | ||
|  | 		if (func_num_args() == 0) | ||
|  | 		{ | ||
|  | 			$i = 0; | ||
|  | 			return ''; | ||
|  | 		} | ||
|  | 		$args = func_get_args(); | ||
|  | 		return $args[($i++ % count($args))]; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * Repeater function
 | ||
|  |  * | ||
|  |  * @access	public | ||
|  |  * @param	string | ||
|  |  * @param	integer	number of repeats | ||
|  |  * @return	string | ||
|  |  */ | ||
|  | if ( ! function_exists('repeater')) | ||
|  | { | ||
|  | 	function repeater($data, $num = 1) | ||
|  | 	{ | ||
|  | 		return (($num > 0) ? str_repeat($data, $num) : ''); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | /* End of file string_helper.php */ | ||
|  | /* Location: ./system/helpers/string_helper.php */ |