Une fiche pratique du JDN explique comment décomposer une chaîne en éléments grâce à la fonction strtok().

Contrairement aux fonctions split() et explode() qui effectuent l'extraction des sous-éléments d'une chaîne en une seul fois et retournent le résultat dans un tableau, la fonction strtok() effectue une décomposition progressive et retourne une partie de la chaîne originale à chacun de ses appels.

Le premier exemple de la fiche du JDN illustre bien son fonctionnement :

<?php
$chaine = "Voici un morceau de code :\n\tvar='a';\n\tvar='b';";
$tok = strtok($chaine, " \n\t");
while ($tok !== false) {

echo 'Segment = ' . $tok . '<br />';
$tok = strtok(" \n\t");

}
?>

Ce bout de code retournera :

Segment = Voici
Segment = un
Segment = morceau
Segment = de
Segment = code
Segment = :
Segment = var='a';
Segment = var='b';
Pour en apprendre plus, voici l'article du JDN :
PHP : décomposer une chaîne en éléments

et la page de strtok dans la documentation php:
PHP: strtok