Составление/разбиение строк

Составление/разбиение строк

substr

Возвращает участок строки с определенной длиной.

Синтаксис:

string substr(string str, int start [,int length])

Возвращает участок строки str, начиная с позиции start и длиной length. Если length не задана, то подразумевается подстрока от start до конца строки str. Если start больше, чем длина строки, или же значение length равно нулю, то возвращается пустая подстрока.

Однако эта функция может делать и еще довольно полезные вещи. К примеру, если мы передадим в start отрицательное число, то будет считаться, что это число является индексом подстроки, но только отсчитываемым от конца str (например, -1 означает "начинается с последнего символа строки").

Параметр length, если он задан, тоже может быть отрицательным. В этом случае последним символом возвращаемой подстроки будет символ из str с индексом length, определяемым от конца строки.

$str = substr("abcdef", 1); // возвратит "bcdef"

$str = substr("abcdef", 1, 3); // возвратит "bcd"

$str = substr("abcdef", -1); // возвратит "f"

$str = substr("abcdef", -2); // возвратит "ef"

$str = substr("abcdef", -3, 1); // возвратит "d"

$str = substr("abcdef", 1, -1); // возвратит "bcde"

str_repeat

Повторяет строку определенное количество раз.

Синтаксис:

string str_repeat(string str, int number)

Функция "повторяет" строку str number раз и возвращает объединенный результат.

echo str_repeat("test!",3); // выводит test!test!test!

str_pad

Дополняет строку другой строкой до определенной длины.

Синтаксис:

string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])

Аргумент input задает исходную строку. Аргумент pad_length задает длину возвращаемой строки. Если он имеет значение меньше, чем исходная строка, то никакого добавления не производится.

При помощи необязательного аргумента pad_string можно указать, какую строку использовать в качестве заполнителя (по умолчанию - пробелы).

При помощи необязательного аргумента pad_type можно указать, с какой стороны следует дополнять строку: справо, слево или с обеих сторон.

Этот аргумент может принимать следующие значения:

$str = "Aaaaa";

echo str_pad($str, 10);

// возвратит "Aaaaa"

echo str_pad($str, 10, "-=", STR_PAD_LEFT);

// возвратит "-=-=-Aaaaa"

echo str_pad($str, 10, "_", STR_PAD_BOTH)

// возвратит "_Aaaa_"

chunk_split

Возвращает фрагмент строки.

Синтаксис:

string chunk_split(string str [, int chunklen [, string end]])

Функция chunk_split() возвращает строку, в которой между каждым блоком строки str длиной chunklen (по умолчанию 76) вставляется последовательность разделителей end (по умолчанию: "rn").

Данная функция может быть полезна при конвертировании в формат "base64" для соответствия правилам RFC 2045.

// отформатируем $data, используя семантику RFC 2045

$str = chunk_split(base64_encode($data));

Эта функция работает значительно быстрее, чем ereg_replace().

strtok

Возвращает строку по частям.

Синтаксис:

string strtok(string arg1, string arg2)

Функция возвращает часть строки arg1 до разделителя arg2. При последующих вызовах возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимает два аргумента: исходную строку arg1 и разделитель arg2. При каждом последующем вызове аргумент arg1 указывать не надо, иначе будет возвращаться первая часть строки. Когда возвращать больше нечего, функция вернет false. Если часть строки состоит из 0 или из пустой строки, то функция также вернет false.

$str="This is an example№string№ Aaa";

$tok = strtok($str, " ");

while($tok) {

echo "$tok";

$tok = strtok(" №");

};

// выведет: "This" "is" "an" "example" "string"

Надо заметить, что в качестве разделителей указывается последовательность символов, каждый из которых в отдельности может являться разделителем, но когда в строке последовательно встречаются два или более разделителей, функция возвращает пустую строку (что может прекратить цикл обработки, как в примере).

explode

Производит разделение строки в массив.

Синтаксис:

array explode(string seperator, string str [, int limit])

Функция explode() возвращает массив строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, указанными аргументом separator.

Необязательный параметр limit указывает максимальное количество элементов в массиве. Оставшаяся неразделенная часть будет содержаться в последнем элементе.

$str = "Path1 Path2 Path3 Path4";

$str_exp = explode(" ", $str);

// теперь $str_exp = array([0] => Path1, [1] => Path2,

// [2] => Path3, [3] => ', [4] => Path4)

implode

Производит объединение массива в строку.

Синтаксис:

string implode(string glue, array pieces)

Функция implode() возвращает строку, которая содержит последовательно все элементы массива, заданного в параметре pieces, между которыми вставляется значение, указанное в параметре glue.

$str = implode(":", $arr);

join

Производит объединение массива в строку.

Синтаксис:

string join(string glue, array pieces)

То же, что и implode().