Folgend ein einfaches Beispiel, dass den Tokenizer verwendet um eine PHP-Datei einzulesen, alle Kommentare zu entfernen und den reinen Quelltext auszugeben.
Beispiel #1 Kommentare mit Hilfe des Tokenizers entfernen
<?php
/*
* T_ML_COMMENT steht in PHP 5 nicht zur Verfügung.
* Die folgenden drei Zeilen definieren die Konstante
* um Abwärtskompatibilität zu gewährleisten.
*
* Die nächsten zwei Zeilen definieren die nur in PHP 5
* verfügbare Konstante T_DOC_COMMENT, die für PHP 4
* mit T_ML_COMMENT maskiert wird.
*/
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
} else {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
$source = file_get_contents('example.php');
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_string($token)) {
// einfaches 1-Zeichen Token
echo $token;
} else {
// Token Array
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT: // wir haben diese
case T_DOC_COMMENT: // und diese Konstante definiert
// Kommentare ignorieren
break;
default:
// alle anderen -> unverändert beibehalten
echo $text;
break;
}
}
}
?>