string strtok(string line, string separator)
Функция strtok (листинг 12.12) выбирает из строки наборы символов. Аргумент line разбивается на наборы символов, разделенные любым символом, заданным строкой separator. Первый вызов функции strtok должен содержать два аргумента. Если вы не собираетесь разбивать на части другую строку, при последующих вызовах функции задается только аргумент separator. В главе 16, "Обработка изображений и графики", эта функция анализируется глубже, включая и ее альтернативы наподобие ereg.

Листинг 12.12. Функция strtok

<?php
// создать демонстрационную строку
$line = "leontatkinsontleon@clearink.com";
// просматривать ее в цикле до тех пор, пока остаются необработан­ные части
for($token = strtok($line, "t");
$token != "";
$token = strtok("t"))
{
print("token: $token<br>n");
}

integer str_word_count(string text, integer mode) array str_word_count(string text, integer mode)
Функция str_word_count (листинг 12.13) предназначена для подсчета слов в текстовой строке. При этом слово является набором буквенных символов, которые могут содержать символ ' или -. По умолчанию возвращается целое число. Функция str_word_count возвращает массив слов, если установлен режим 1. Когда установлен режим 2, он возвращает ассоциативный массив, в котором слова являются индексами, а значения отражают положение слова в тексте (рис. 12.2).

| Листинг 12.13. Функция str_word_count_
<?php
$text = ""That can't be right," said the half-elf.";
print(str_word_count($text) . "n");
print_r(str_word_count($text, 1));
print_r(str_word_count($text, 2));
?>

string substr(string text, integer start, integer length)
Функция substr (листинг 12.14) предназначена для выборки подстроки из строки, заданной аргументом text. Возвращается часть строки, начиная с символа, номер которого в строке обозначен аргументом start, причем отсчет начинается с нуля. Если значение аргумента start является отрицательным, отсчет начинается с последнего символа аргумента text вместо первого и идет в обратном направлении.
Кодирование и декодирование
Аргумент length или конец строки определяет количество возвращаемых символов. Отрицательное значение аргумента length определяет, что возвращаемая строка завершается после окончания строки. В любом случае, если комбинация аргументов start и length приводит к возвращению строки отрицательной длины, возвращается один символ.
Эту функцию можно использовать в работе с двоичными строками.

j Листинг 12.14. Функция substr_
<?php
$text = "Кличка моей собаки Ангус"; //Распечатывает Ангус print(substr($text, 19, 5));
?>

integer substr_count(string text, string substring)
Функция substr_count (листинг 12.15) возвращает счетчик символа, представленного аргументом substring в строке, представленной аргументом text.

| Листинг 12.15. Функция substr count_
<?php
$text = 'How much wood would a woodchuck chuck, ' .
'if a woodchuck could chuck wood?'; // печатает 4
print(substr_count($text, 'wood'));

 ?> 
array token_get_all(string text)
Функция token_get_all (листинг 12.16) анализирует PHP-код и возвращает массив, в каждом элементе которого будет содержаться по одному набору символов. Элемент может быть строкой или двухэлементным массивом, содержащим идентификатор набора символов и сам символ. Для получения текстового имени набора символов можно использовать token_name (рис. 12.3).

Листинг 12.16. Функция token_get_all, tokenname

<?php
$code = '<?php$a = 3;?>'; foreach(token_get_all($code) as $c) {
if(is_array($c))
{
print(token_name($c[0]) . ": '" . htmlentities($c[1]) .
"'<br>n");
}
else
{
print("$c<br>n");
}
}
?>
Кодирование и декодирование
string token_name(integer token)
Функция token_name возвращает имя идентификатора набора символов.
string vsprintf(string format, array arguments)
Функция vsprintf аналогична функции sprintf, за исключением того, что аргументы передаются массивом.