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 */
							 |