Функции объединения/разделения строк
str_pad()
chunk_split()
strtok()
explode()
implode()
join()
str_repeat()
Синтаксис:
string str_repeat(string str, int number)
Функция повторения строки. Повторяет строку str то количество раз, которое указано в параметре number.
К примеру:
<?
echo str_repeat("Hello!",3);
// выводит Hello! Hello! Hello!
?>
str_pad()
Синтаксис:
string str_pad(string strinput, int pad_length [, string pad_string [, int pad_type]])
Эта функция дополняет строку другой строкой до определенной длины. Аргумент strinput задает исходную строку. Аргумент pad_length задает длину возвращаемой строки. Если он имеет меньшее значение, чем исходная строка, то добавления не производится. Необязательный аргумент pad_string указывает на то, какую строку использовать в качестве дополнения. По умолчанию используются пробелы. Необязательный аргумент pad_type указывает, с какой стороны следует дополнять строку: справо, слево или с обеих сторон. Аргумент pad_type может принимать следующие значения:
STR_PAD_RIGHT (по умолчанию)
STR_PAD_LEFT
STR_PAD_BOTH
chunk_split()
Синтаксис:
string chunk_split(string str [, int chunklen [, string end]])
Эта функция возвращает фрагмент строки. Функция chunk_split() возвращает строку, в которой между каждым блоком строки str длиной chunklen (по умолчанию chunklen = 76) вставляется последовательность из разделителей end (по умолчанию: end = "\r\n").
strtok()
Синтаксис:
string strtok(string arg1, string arg2)
Фунция возвращает строку по частям. Она возвращает часть строки arg1 до разделителя arg2. При последующих вызовах функции возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимает два аргумента: исходную строку arg1 и разделитель arg2. Обратите внимание, что при каждом последующем вызове arg1 указывать не надо, иначе будет возвращаться первая часть строки.
Пример:
<?
$str ="I am very glad to see%you% adhahjasdad";$tok = strtok($str, " ");
while($tok)
{
echo ($tok);
echo (" ");
$tok = strtok(" %");
};
// выведет: "I" "am" "very" "glad" "to" "see" "you":
?>
I am very glad to see you
Т.е., видите, что абракадабра, которую мы написали в конце строки, не выводится. Это результат того, что когда в строке последовательно встречаются два или более разделителей, функция возвращает пустую строку, что, к примеру, может прекратить цикл обработки, как в этом примере.
explode()
Синтаксис:
string explode(string arg, string str [, int maxlimit])
Функция explode() производит разделение строки в массив. Она возвращает массив строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, указанными аргументом arg. Необязательный параметр maxlimit указывает максимальное количество элементов в массиве. Оставшаяся неразделенная часть будет содержаться в последнем элементе.
Пример:
<?
$str = "one two three for five";
$str_exp = explode(" ", $str);
/* теперь $str_exp = array([0] => one, [1] => two,
[2] => three, [3] => for, [4] => five)
*/
?>
implode()
Синтаксис:
string implode(string var, array param)
Функция implode() является обратной функции explode() и производит объединение массива в строку. Функция возвращает строку, которая последовательно содержит все элементы массива, заданного в параметре param, между которыми вставляется значение, указанное в параметре var. Для примера выведем все то, что мы только что "умассивили" функцией explode(), используя пробел в качестве разделителя:
Пример:
<?
$str = "one two three four five";
$str_exp = explode(" ", $str);
/* $str_exp = array([0] => one, [1] => two,
[2] => three, [3] => four, [4] => five)
*/
$str_imp = implode(" ", $str_exp);
echo($str_imp);
Результат:
one two three four five
join()
Синтаксис:
string join(string var, array param)
Аналог функции implode() - производит объединение массива в строку.
Вообще говоря, как Вы увидели, последние три функции имеют прямое отношение как к массивам, так и строкам, и многие авторы рассматривают их в разделе, где рассказывается о массивах. Мы решили их рассмотреть в этой главе, поскольку официально эти функции все же считаются строковыми, а о массивах мы будем говорить в следующей главе.