РНР обладает большим набором функций для разбивки строки на подстроки по определенному символу. Первая функция explode() предназначена для разбивки строки по определенному разделителю и имеет следующий синтаксис:
array explode(string separator, string Str[, int limit])
Функция возвращает массив строк, каждая из которых соответствует фрагменту исходной строки str, находящемуся между разделителями, определяемыми аргументом separator. Необязательный параметр limit задает максимальное количество элементов в массиве. Оставшаяся (неразделенная) часть будет содержаться в последнем элементе.
<?php
$str = "Имя, Фамилия, e-mail";
$exp_str = explode(",", $str);
print_r ($exp_str);
?>
Результат:
Array
(
[0] => Имя
[1] => Фамилия
[2] => e-mail
)
Функция implode() является обратной к explode () функцией и осуществляет объединение элементов массива в строку.
Другой функцией, позволяющей разбить строку на подстроки, является strtok(), которая имеет следующий синтаксис:
Функция strtok() возвращает строку по частям, а именно возвращает часть строки str до разделителя separate. При последующих вызовах функции возвращается следующая часть до следующего разделителя, и так до конца строки. При первом вызове функция принимает два аргумента: исходную строку str и разделитель separate.
// Извлечение подстрок из строки запроса
<?php
$str="http://www.softtime.ru/forum/
read.php?id_forum=1&id_theme=961&id_post=6806";
$tok = strtok($str,"?&");
while($tok = strtok("?&"))
(
echo "$tok<br>";
)
?>
Результат:
id_forum=1
id_theme=961
id__post=6806
Функция str_word_count(), позволяющая как разбивать строку на отдельные слова, так и возвращать число слов в строке.
mixed str_word_count(string str[, int format])
Функция принимает строку str и необязательный параметр format, определяющий, какую информацию следует возвратить о строке. В случае его отсутствия возвращается количество слов в строке. Ниже описаны допустимые значения аргумента format и соответствующие им возвращаемые значения:
1 — возвращается массив, содержащий все слова, входящие в строку str;
2 — возвращается массив, индексами которого являются позиции в строке, а значениями — соответствующие слова.
Функция str_spiit () преобразует строку в массив и имеет следующий синтаксис:
array str_split (string str[, int split_Iength])
Строка str преобразуется в массив. Если указан необязательный аргумент spiit_length, возвращаемый массив будет содержать части исходной строки длиной split_length каждая, иначе каждый элемент будет содержать один символ.
Если split_length меньше 1, возвращается false. Если spiit_iength больше длины строки str, вся строка будет возвращена в первом и единственном элементе массива.
Функция wordwrap()осуществляет перенос на заданное количество символов с использованием символа разрыва строки.
Функция разбивает блок текста str на несколько строк, которые завершаются символами break (по умолчанию это перенос строки — \n), так, чтобы в одной строке было не более width букв (по умолчанию 75). Поскольку разбиение происходит по границам слов, текст остается вполне читаемым