Функции, предназначенные для преобразования текста, можно разбить на три основные категории: функции, производящие произвольные преобразования со строками; функции, преобразующие строки в соответствии со специальными правилами, и функции, производящие оценку строк и возвращающие числовые или логические значения. К числу преобразующих функций могут быть причислены и функции, выполняющие кодирование и сжатие текстовой информации. К оценочным функциям причисляются функции проверки правописания, создания хешей и поиска по шаблонам.
12.1. Строки
По большей части строковые функции создают строки из других строк или сообщают информацию о строках.
array count_chars(string data, integer mode) string count_chars(string data, integer mode)
Функция count_chars (листинг 12.1) анализирует строки на предмет наличия в них определенных символов. Как аргумент mode контролирует возвращаемые значения, приведенные в табл. 12.1 (рис. 12.1).
Кодирование и декодирование
Кодирование и декодирование
Листинг 12.1. Функция count_chars

//распечатать счетчики для найденных символов
foreach(count_chars("Core PHP", 1) as $key=>$value) {
print("$key: $valuen");
}
// распечатать перечень найденных символов
print("Символы: '" . count_chars("Core PHP", 3) . "'n"),-
?>
Кодирование и декодирование
string sprintf(string format, ...)
Функция sprintf (листинг 12.2) аналогична функции printf, за исключением того, что вместо отправки собранной строки в браузер она возвращает эту строку. Подробнее о функциональных возможностях функции printf можно узнать в ее описании. Эта функция предлагает простое управление представлением чисел. Обычно PHP печатает вещественное число без дробной части, а эта функция позволяет форматировать такие числа с любым количеством цифр после запятой. 
j Листинг 12.2. Функция sprintf_

$x = 3.00;
//Распечатать $x как значение PHP, принимаемое по умолчанию print($x . "n");
//отформатировать значение $x таким образом, чтобы
//в нем отображались две десятые после
// десятичной точки
$s = sprintf("%.2f", $x);
print($s . "n");
?>

value sscanf(string text, string format, ...)
Функция sscanf анализирует строку аналогично тому, как функция fscanf анализирует строку ввода из файла, т.е. она пытается разбить ее на переменные в соответствии с форматом, заданным аргументом format. Если задать только два аргумента, функция sscanf возвратит массив. В противном случае она попытается разместить значения в соответствующем списке переменных ссылок. Описание функции fscanf, включая и имеющиеся коды форматирования, см. в главе 9, "Операционная система".
strchr
Эта функция является псевдонимом функции strstr.
integer strcspn(string text, string set)
Функция strcspn (листинг 12.3) возвращает положение первого символа из строки, переданной аргументом text, который задан аргументом set. Сравните эту функцию с функцией strspn.

j Листинг 12.3. Функция strcspn_
$text = "red cabbage"; $set = "abc";
$position = strcspn($text, $set); // печатает 'red '
print("'" . substr($text, 0, $position) . "'");
?>

integer stripos(string data, string substring, integer offset)
Функция stripos возвращает положение аргумента substring в аргументе data. Она аналогична функции strpos, описанной в этой главе, за исключением того, что она игнорирует регистр букв.
string stristr(string text, string substring)
Функция stristr (листинг 12.4) является версией функции strstr, описанной в этой главе, но, в отличие от нее, реагирует на регистр. Часть строки, представленной в аргументе text, возвращается, начиная с первого появления значения из аргумента substring и заканчивая исходной строкой. 

j Листинг 12.4. Функция stristr_

$text = "Although he had help, Leon is the author of this book."; print("Looking for 'leon': " . stristr($text, "leon"));
?>

integer strlen(string text)
Функция strlen (листинг 12.5) предназначена для определения длины строки.

j Листинг 12.5. Функция strlen_
$text = "a short string";
print("'$text' имеет длину " . strlen($text) . " символов.");
?>