<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>String Helper : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 1.7.1</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
String Helper
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>String Helper</h1>

<p>The String Helper file contains functions that assist in working with strings.</p>


<h2>Loading this Helper</h2>

<p>This helper is loaded using the following code:</p>
<code>$this->load->helper('string');</code>

<p>The following functions are available:</p>

<h2>random_string()</h2>

<p>Generates a random string based on the type and length you specify.  Useful for creating passwords or generating random hashes.</p>

<p>The first parameter specifies the type of string, the second parameter specifies the length.  The following choices are available:</p>


<ul>
<li><strong>alnum</strong>:&nbsp; Alpha-numeric string with lower and uppercase characters.</li>
<li><strong>numeric</strong>:&nbsp; Numeric string.</li>
<li><strong>nozero</strong>:&nbsp; Numeric string with no zeros.</li>
<li><strong>unique</strong>:&nbsp; Encrypted with MD5 and uniqid(). Note: The length parameter is not available for this type.
Returns a fixed length 32 character string.</li>
</ul>

<p>Usage example:</p>

<code>echo random_string('alnum', 16);</code>


<h2>alternator()</h2>

<p>Allows two or more items to be alternated between, when cycling through a loop.  Example:</p>

<code>for ($i = 0; $i < 10; $i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo alternator('string one', 'string two');<br />
}<br />
</code>

<p>You can add as many parameters as you want, and with each iteration of your loop the next item will be returned.</p>

<code>for ($i = 0; $i < 10; $i++)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;echo alternator('one', 'two', 'three', 'four', 'five');<br />
}<br />
</code>

<p><strong>Note:</strong> To use multiple separate calls to this function simply call the function with no arguments to re-initialize.</p>



<h2>repeater()</h2>
<p>Generates repeating copies of the data you submit. Example:</p>
<code>$string = "\n";<br />
echo repeater($string, 30);</code>

<p>The above would generate 30 newlines.</p>
<h2>reduce_double_slashes()</h2>
<p>Converts double slashes in a string to a single slash, except those found in http://. Example: </p>
<code>$string = &quot;http://example.com//index.php&quot;;<br />
echo reduce_double_slashes($string); // results in &quot;http://example.com/index.php&quot;</code>
<h2>trim_slashes()</h2>
<p>Removes any leading/trailing slashes from a string. Example:<br />
	<br />
	<code>$string = &quot;/this/that/theother/&quot;;<br />
echo trim_slashes($string); // results in this/that/theother</code></p>


<h2>reduce_multiples()</h2>
<p>Reduces multiple instances of a particular character occuring directly after each other. Example:</p>
<code>
$string="Fred, Bill,, Joe, Jimmy";<br />
$string=reduce_multiples($string,","); //results in "Fred, Bill, Joe, Jimmy"
</code>
<p>The function accepts the following parameters:
<code>reduce_multiples(string: text to search in, string: character to reduce, boolean: whether to remove the character from the front and end of the string)</code>

The first parameter contains the string in which you want to reduce the multiplies. The second parameter contains the character you want to have reduced.
The third parameter is FALSE by default; if set to TRUE it will remove occurences of the character at the beginning and the end of the string. Example:

<code>
$string=",Fred, Bill,, Joe, Jimmy,";<br />
$string=reduce_multiples($string, ", ", TRUE); //results in "Fred, Bill, Joe, Jimmy"
</code>
</p> 

<h2>quotes_to_entities()</h2>
<p>Converts single and double quotes in a string to the corresponding HTML entities. Example:</p>
<code>$string="Joe's \"dinner\"";<br />
$string=quotes_to_entities($string); //results in "Joe&amp;#39;s &amp;quot;dinner&amp;quot;"
</code>

<h2>strip_quotes()</h2>
<p>Removes single and double quotes from a string. Example:</p>
<code>$string="Joe's \"dinner\"";<br />
$string=strip_quotes($string); //results in "Joes dinner"
</code>

</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="smiley_helper.html">Smiley Helper</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="text_helper.html">Text Helper</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2008 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>