﻿<h1 class=p1>Функции объединения/разделения строк</h1>
<table border="0" cellspacing="10">
    <tr valign="top">
        <td>
            <a class=bluelink href="#1" title="Функция повторения строки">str_repeat()</a>&nbsp;<br>
            <a class=bluelink href="#2" title="Функция дополнения одной строки другой строкой до определенной длины">str_pad()</a>&nbsp;<br>
        </td>
        <td>
            <a class=bluelink href="#3" title="Функция возвращения фрагмента строки">chunk_split()</a>&nbsp;<br>        
            <a class=bluelink href="#4" title="Фунция возвращения строки по частям">strtok()</a>&nbsp;<br>      
        </td>
        <td>
            <a class=bluelink href="#5" title="Функция разделения строки в массив">explode()</a>&nbsp;<br>
            <a class=bluelink href="#6" title="Функция объединения массива в строку">implode()</a>&nbsp;<br>
        </td>
        <td>    
        
            <a class=bluelink href="#7" title="Аналог функции implode() - производит объединение массива в строку">join()</a>&nbsp;<br>     
        </td>
    </tr>
</table>
<br>
<a name=1></a>
<h1 class=p1>str_repeat()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>str_repeat</b><em class=gr>(</em>string <b>str</b>, int <b>number</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция повторения строки. Повторяет строку <b>str</b> то количество раз, которое указано в параметре <b>number</b>.</p>
<p class=prim><b><i>К примеру:</i></b></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <em class=gr>echo</em> str_repeat("<b>Hello!</b>",3<em class=gr>);</em>
   //<em class=comnt> выводит Hello! Hello! Hello!</em>
<em class=red>?&gt;</em>
</pre></blockquote>
<br>

<a name=2></a>
<h1 class=p1>str_pad()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>str_pad</b><em class=gr>(</em>string <b>strinput</b>, int <b>pad_length</b> [, string <b>pad_string</b> [, int <b>pad_type</b>]]<em class=gr>)</em>
</pre></blockquote>
<p class=text>Эта функция дополняет строку другой строкой до определенной длины. Аргумент <b>strinput</b> задает исходную строку. Аргумент <b>pad_length</b> задает длину возвращаемой строки. Если он имеет меньшее значение, чем исходная строка, то добавления не производится. Необязательный аргумент <b>pad_string</b> указывает на то, какую строку использовать в качестве дополнения. По умолчанию используются пробелы. Необязательный аргумент <b>pad_type</b> указывает, с какой стороны следует дополнять строку: справо, слево или с обеих сторон. Аргумент <b>pad_type</b> может принимать следующие значения: </p>
<ul>
  <li>STR_PAD_RIGHT (по умолчанию) </li>
  <li>STR_PAD_LEFT </li>
  <li>STR_PAD_BOTH </li>
</ul>
<br>

<a name=3></a>
<h1 class=p1>chunk_split()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>chunk_split</b><em class=gr>(</em>string <b>str</b> [, int <b>chunklen</b> [, string <b>end</b>]]<em class=gr>)</em>
</pre></blockquote>
<p class=text>Эта функция возвращает фрагмент строки. Функция <b>chunk_split</b>() возвращает строку, в которой между каждым блоком строки <b>str</b> длиной <b>chunklen</b> (по умолчанию <b>chunklen</b>  = 76) вставляется последовательность из разделителей <b>end</b> (по умолчанию: <b>end</b>  = "<b>\r\n</b>").</p>
<br>

<a name=4></a>
<h1 class=p1>strtok()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>strtok</b><em class=gr>(</em>string <b>arg1</b>, string <b>arg2</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Фунция возвращает строку по частям. Она возвращает часть строки <b>arg1</b> до разделителя <b>arg2</b>. При последующих вызовах функции возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимает два аргумента: исходную строку <b>arg1</b> и разделитель <b>arg2</b>. Обратите внимание, что при каждом последующем вызове <b>arg1</b> указывать не надо, иначе будет возвращаться первая часть строки.</p>
<p class=prim><b><i>Пример:</i></b></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$str</b> <em class=gr>=</em>"I am very glad to see%you% adhahjasdad";<b>$tok</b> = strtok<em class=gr>(</em><b>$str</b>, " "<em class=gr>);</em>
   <em class=gr>while(</em><b>$tok</b><em class=gr>) 
   {
     echo (</em><b>$tok</b><em class=gr>);
     echo (</em>" "<em class=gr>);</em>
     <b>$tok</b> <em class=gr>=</em> strtok<em class=gr>(</em>" %"<em class=gr>);
   };</em>
   // <em class=comnt>выведет: "I" "am" "very" "glad" "to" "see" "you":</em>
<em class=red>?&gt;</em>
</pre></blockquote>
<table border="0" summary="">
    <tr>
        <td colspan="2"><img src="vk/images/gl3_2.gif" tppabs="http://site/bookphp/vk/images/gl3_2.gif" border="0" width="399" height="90" alt=""></td>
    </tr>
    <tr><td width="20">&nbsp;</td>
        <td><p class=html>
            I am very glad to see you<br>
        </td>
    </tr>
</table>

<p class=text>Т.е., видите, что абракадабра, которую мы написали в конце строки, не выводится. Это результат того, что когда в строке последовательно встречаются два или более разделителей, функция возвращает пустую строку, что, к примеру, может прекратить цикл обработки, как в этом примере.</p>
<br>

<a name=5></a>
<h1 class=p1>explode()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>explode</b><em class=gr>(</em>string <b>arg</b>, string <b>str</b> [, int <b>maxlimit</b>]<em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция <b>explode</b>() производит разделение строки в массив. Она возвращает массив строк, каждая из которых соответствует фрагменту исходной строки <b>str</b>, находящемуся между разделителями, указанными аргументом <b>arg</b>. Необязательный параметр <b>maxlimit</b> указывает максимальное количество элементов в массиве. Оставшаяся неразделенная часть будет содержаться в последнем элементе.</p>
<p class=prim><b><i>Пример:</i></b></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$str</b> <em class=gr>=</em> "one two three for five";
   <b>$str_exp</b> <em class=gr>=</em> explode<em class=gr>(</em>" ", <b>$str</b><em class=gr>);</em>
   <em class=comnt>/* теперь $str_exp = array([0] => one, [1] => two,
      [2] => three, [3] => for, [4] => five)
   */</em>
<em class=red>?&gt;</em>
</pre></blockquote>
<br>

<a name=6></a>
<h1 class=p1>implode()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>implode</b><em class=gr>(</em>string <b>var</b>, array <b>param</b><em class=gr>)</em>
</pre></blockquote>
<p class=text>Функция <b>implode</b>() является обратной функции <b>explode</b>() и производит объединение массива в строку. Функция возвращает строку, которая последовательно содержит все элементы массива, заданного в параметре <b>param</b>, между которыми вставляется значение, указанное в параметре <b>var</b>. Для примера выведем все то, что мы только что &quot;умассивили&quot; функцией <b>explode</b>(), используя пробел в качестве разделителя:</p>
<p class=prim><b><i>Пример:</i></b></p>
<blockquote><pre>
<em class=red>&lt;?</em>
   <b>$str</b> = "one two three four five"<em class=gr>;</em>
   <b>$str_exp</b> = explode<em class=gr>(</em>" ", <b>$str</b><em class=gr>);</em>
   <em class=comnt>/* $str_exp = array([0] => one, [1] => two,
     [2] => three, [3] => four, [4] => five)
   */</em>
   <b>$str_imp</b> = implode<em class=gr>(</em>" ", <b>$str_exp</b><em class=gr>);</em>
   <em class=gr>echo(</em><b>$str_imp</b><em class=gr>);</em>
</pre></blockquote>
<p class=prim><b><i>Результат:</i></b></p>
<table border="0" summary="">
    <tr>
        <td colspan="2"><img src="vk/images/gl3_2.gif" tppabs="http://site/bookphp/vk/images/gl3_2.gif" border="0" width="399" height="90" alt=""></td>
    </tr>
    <tr><td width="20">&nbsp;</td>
        <td><p class=html>
            one two three four five<br>
        </td>
    </tr>
</table>
<br>

<a name=7></a>
<h1 class=p1>join()</h1>
<p class=prim><b><i>Синтаксис:</i></b></p>
<blockquote><pre>
string <b>join</b><em class=gr>(</em>string <b>var</b>, array <b>param</b><em class=gr>)</em>
</pre></blockquote> 
<p class=text>Аналог функции <b>implode</b>() - производит объединение массива в строку.</p>
<p class=text>Вообще говоря, как Вы увидели, последние три функции имеют прямое отношение как к массивам, так и строкам, и многие авторы рассматривают их в разделе, где рассказывается о массивах. Мы решили их рассмотреть в этой главе, поскольку официально эти функции все же считаются строковыми, а о массивах мы будем говорить в следующей главе.</p>

<br><br>