ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ PHP-ΡΠΊΡΠΈΠΏΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ tokenizer (Π»Π΅ΠΊΡΠ΅Ρ), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΈΡΠ°Π΅Ρ PHP-ΡΠ°ΠΉΠ», ΡΠ΄Π°Π»ΡΠ΅Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΡΡΠΉ ΠΊΠΎΠ΄.
ΠΡΠΈΠΌΠ΅Ρ #1 Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π»Π΅ΠΊΡΠ΅ΡΠΎΠΌ
<?php
$source = file_get_contents('example.php');
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_string($token)) {
// ΠΏΡΠΎΡΡΠ°Ρ ΠΎΠ΄Π½Π°Π±ΡΠΊΠ²Π΅Π½Π½Π°Ρ Π»Π΅ΠΊΡΠ΅ΠΌΠ°
echo $token;
} else {
// ΠΌΠ°ΡΡΠΈΠ² Ρ Π»Π΅ΠΊΡΠ΅ΠΌΠΎΠΉ
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_DOC_COMMENT:
// Π½Π΅Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π΄Π»Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²
break;
default:
// Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ -> Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π΅ΡΡΡ
echo $text;
break;
}
}
}
?>