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