Учебник РНР
Назад Вперёд

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() .


Назад Оглавление Вперёд
strstr Вверх strtolower