class StringTokenizer { private string $token; private string $delim; public void __construct(string $str, string $delim = ' ') { $this->token = strtok($str, $delim); $this->delim = $delim; } public void __destruct() { } public bool hasMoreTokens() { return ($this->token != NULL); } public string nextToken() { string $current = $this->token; $this->token = strtok($this->delim); return $current; } } class Program { public void main() { string $str = "This is:@\t\n a TEST!"; string $delim = " !@:\t\n"; object $st = new StringTokenizer($str, $delim); while ($st->hasMoreTokens()) { print($st->nextToken(), "\n"); } unset($st); } }