top

Описание функции strtok



strtok


(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() .
corner
My pencil ;)
Главная     Сервисы     Портфолио     Проги     Видео     Контакты     Ссылки     Текст