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, если токенов больше нет.

Примеры

Пример #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, так и значение не типа boolean, которое приводится к false. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.

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

  • explode() - Разбивает строку с помощью разделителя