strtok

(PHP 4, PHP 5, PHP 7, PHP 8)

strtokРазбивает строку на токены

Описание

strtok(string$string, string$token): string|false

Альтернативная сигнатура (не поддерживается с именованными аргументами):

strtok(string$token): string|false

Функция strtok() разбивает строку (string) на подстроки (токены), используя в качестве разделителей символы из token. Например, строку «This is an example string» можно разбить на отдельные слова с пробелом в качестве разделителя (token).

Заметьте, что исходная строка (string) передаётся только при первом вызове этой функции. Очередным вызовам передаются только разделители (token), так как эта функция сохраняет исходную строку и запоминает позицию в этой строке между вызовами. Для работы с новой строкой (string) нужно снова вызвать функцию с двумя аргументами. Обратите внимание, что в параметре token разрешено указывать несколько разделителей. Строка будет делиться по любому найденному символу, который содержится в параметре (token).

Замечание:

Функция ведёт себя немного иначе, чем можно было бы ожидать, знакомясь с explode(). Во-первых, последовательность из двух или более смежных символов token в анализируемой строке признаётся одним разделителем. Игнорируется и token в начале или конце строки. Например, если указана строка «;aaa;;bbb;», последовательные вызовы функции strtok() с символом «;» в качестве значения параметра token вернут строки «aaa» и «bbb», а затем false. Результатом будет то, что строка будет разделена только на два элемента, а вызов explode(";", $string) вернёт массив из 5 элементов.

Список параметров

string

Строка (string), разбиваемая на подстроки (токены).

token

Разделитель строки string.

Возвращаемые значения

Возвращает токен в виде строки (string) или false, если токенов больше нет.

Список изменений

ВерсияОписание
8.3.0 Теперь выдаёт ошибку уровня E_WARNING, когда параметр token не указан.

Примеры

Пример #1 Пример использования функции strtok()

<?php

$string
= "This is\tan example\nstring";

$tok = strtok($string, " \n\t");

while (
$tok !== false) {
echo
"Word=$tok<br />";
$tok = strtok(" \n\t");
}

?>

Пример #2 Способ обработки пустых подстрок функцией strtok()

<?php

$first_token
= strtok('/something', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);

?>

Результат выполнения приведённого примера:

string(9) "something" bool(false)

Пример #3 Отличие функции strtok() от функции explode()

<?php

$string
= ";aaa;;bbb;";

$parts = [];
$tok = strtok($string, ";");
while (
$tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo
json_encode($parts),"\n";

$parts = explode(";", $string);
echo
json_encode($parts),"\n";

?>

Результат выполнения приведённого примера:

["aaa","bbb"] ["","aaa","","bbb",""]

Примечания

Внимание

Функция возвращает как логическое значение false, так и нелогическое значение, которое приводится к false. Прочитайте раздел «Логический тип», чтобы получить дополнительную информацию. Используйте оператор === для проверки значения, которое возвращает функция.

Смотрите также

  • explode() - Разбивает строку разделителем
To Top