|
(PHP 3, PHP 4 )
strtok - лексемизация/Tokenize строки. Описаниеstring strtok (string arg1, string arg2)
strtok() разделяет строку (arg1) на небольшие строки (лексемы/tokens), где каждая строка отделена символом
из arg2. То есть, если у вас имеется, например, строка "This is an example string",
вы можете лексемизировать её на отдельные слова с применением пробела как разделителя.
Пример 1. strtok()
$string = "This is\tan example\nstring";
/* Использовать также символы tab и newline как лексемизирующие символы */
$tok = strtok($string," \n\t");
while ($tok) {
echo "Word=$tok<br>";
$tok = strtok(" \n\t");
} | | Заметьте, что только первый вызов strtok использует аргумент string.
Каждый последующий вызов strtok только использует лексему и отслеживает таким образом, где он находится в текущей строке. Для старта сначала или для
лексемизации новой строки вы просто вызываете strtok снова с аргументом string для его инициализации. Заметьте, что вы можете поместить несколько
лексем в параметр token. Строка будет лексемизироваться, если найден какой-нибудь один из символов из этого аргумента.
Поведение в случае обнаружения пустой части было изменено в PHP 4.1.0. Старое поведение - возвращалась пустая строка, новое, корректное - эта часть
строки просто пропускается: Пример 2. Старое поведение strtok()
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump ($first_token, $second_token);
/* Выводится:
string(0) ""
string(9) "something"
*/ |
|
Пример 3. Новое поведение strtok()
$first_token = strtok('/something', '/');
$second_token = strtok('/');
var_dump ($first_token, $second_token);
/* Выводится:
string(9) "something"
bool(false)
*/ |
|
Имейте также в виду, что ваши лексемы могут быть равны "0". Это даёт
FALSE в условных выражениях. См. также split() и
explode(). | |