strtok în PHP

Împarte un text în bucăți, returnând câte o bucată la fiecare apel.

Sintaxă
strtok(string $string, ?string $token = null): string|false

Ce face strtok

strtok se apelează de mai multe ori. Primul apel primește textul și lista de separatori și returnează prima bucată. Apelurile următoare primesc doar separatorii și returnează bucata următoare, până când funcția returnează false.

Orice caracter din $token este separator, iar separatorii alăturați sunt tratați ca unul singur (bucățile goale sunt sărite). Pentru majoritatea cazurilor, explode sau preg_split sunt mai ușor de folosit.

Parametri

Parametru Descriere
$string La primul apel: textul împărțit. La apelurile următoare: lista de separatori.
$token La primul apel: lista de separatori.

Ce returnează

Bucata următoare sau false când nu mai sunt bucăți.

Exemple

Exemplul 1: Bucată cu bucată

<?php
$bucata = strtok("Ana, Ion;  Maria", ",; ");

while ($bucata !== false) {
    echo "[$bucata]\n";
    $bucata = strtok(",; ");
}

Rezultat

[Ana]
[Ion]
[Maria]

Exemplul 2: Doar prima bucată

Un singur apel este o metodă rapidă de a lua tot ce este înainte de primul separator.

<?php
$url = "/invata/php/?pagina=2";

echo strtok($url, "?");

Rezultat

/invata/php/

Greșeli frecvente

  • Bucla se oprește prea devreme când o bucată este "0". Verifică cu !== false, nu cu while ($bucata).
  • Apelezi din nou strtok cu textul în interiorul buclei și împărțirea o ia de la capăt. Doar primul apel primește textul.

Comenzi înrudite

  • explode: Împarte un text în bucăți după un separator și le pune într-un tablou.
  • preg_split: Împarte un text în bucăți folosind o expresie regulată ca separator.
  • strpbrk: Returnează textul începând cu primul caracter care apare într-o listă dată.