token_get_all
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
token_get_all β Π Π°Π·Π±ΠΈΠ²Π°Π΅Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π° PHP-Π»Π΅ΠΊΡΠ΅ΠΌΡ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
Π Π°Π·Π΄Π΅Π» Β«Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΏΠ°ΡΡΠ΅ΡΠ°Β» ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»ΡΠ΅Ρ Π»Π΅ΠΊΡΠ΅ΠΌΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ°.
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ token_name(),
ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΠΎΠΊΠ΅Π½Π° Π² ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅.
Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
code
-
ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ PHP-ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ°.
flags
-
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ»Π°Π³ΠΈ:
-
TOKEN_PARSE β ΠΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π²Π½ΡΡΡΠΈ PHP-ΡΠ΅Π³ΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π»Π΅ΠΊΡΠ΅ΠΌ. ΠΠ°ΠΆΠ΄ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π»Π΅ΠΊΡΠ΅ΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅
ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ;, .,
>, !,
ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ 3-ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π»Π΅ΠΊΡΠ΅ΠΌΡ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 0,
ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΠ΅Π½Π° Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 1 ΠΈ Π½ΠΎΠΌΠ΅Ρ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠΌ 2.
ΠΡΠΈΠΌΠ΅ΡΡ
ΠΡΠΈΠΌΠ΅Ρ #1 ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ PHP-ΠΊΠΎΠ΄Π° Π½Π° ΡΠΎΠΊΠ΅Π½Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ token_get_all()
<?php
$tokens = token_get_all('<?php echo; ?>');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Π‘ΡΡΠΎΠΊΠ° {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π°:
Π‘ΡΡΠΎΠΊΠ° 1: T_OPEN_TAG ('<?php ')
Π‘ΡΡΠΎΠΊΠ° 1: T_ECHO ('echo')
Π‘ΡΡΠΎΠΊΠ° 1: T_WHITESPACE (' ')
Π‘ΡΡΠΎΠΊΠ° 1: T_CLOSE_TAG ('?>')
ΠΡΠΈΠΌΠ΅Ρ #2 ΠΡΠΈΠΌΠ΅Ρ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π΄Π»Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ token_get_all()
<?php
$tokens = token_get_all('/* ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ */');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Π‘ΡΡΠΎΠΊΠ° {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π°:
Π‘ΡΡΠΎΠΊΠ° 1: T_INLINE_HTML ('/* ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ */')
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π² ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ°Π·ΠΎΠ±ΡΠ°Π»Π° ΡΡΡΠΎΠΊΡ ΠΊΠ°ΠΊ ΡΠΎΠΊΠ΅Π½
T_INLINE_HTML,
Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΡΠΉ
T_COMMENT.
ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠΎΠΌ ΠΎΡΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ PHP-ΡΠ΅Π³Π° Π² ΡΡΡΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°:
ΡΡΠ½ΠΊΡΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΠ΅ΠΊΡΡ Π²Π½Π΅ PHP-ΡΠ΅Π³ΠΎΠ² ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ HTML-ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ, Π° Π½Π΅ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅Ρ #3
ΠΡΠΈΠΌΠ΅Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΊΠ»Π°ΡΡΠ° Ρ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ token_get_all()
<?php
$source = <<<'code'
<?php
class A
{
const PUBLIC = 1;
}
code;
$tokens = token_get_all($source, TOKEN_PARSE);
foreach ($tokens as $token) {
if (is_array($token)) {
echo token_name($token[0]) , PHP_EOL;
}
}
?>
ΠΡΠ²ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡ
ΠΎΠΆ Π½Π°:
T_OPEN_TAG
T_WHITESPACE
T_CLASS
T_WHITESPACE
T_STRING
T_CONST
T_WHITESPACE
T_STRING
T_LNUMBER
ΠΠ΅Π· ΡΠ»Π°Π³Π°
TOKEN_PARSE Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΎΠΊΠ΅Π½Π°
T_STRING ΡΡΠ½ΠΊΡΠΈΡ Π²Π΅ΡΠ½ΡΠ»Π° Π±Ρ ΡΠΎΠΊΠ΅Π½
T_PUBLIC.
Π‘ΠΌΠΎΡΡΠΈΡΠ΅ ΡΠ°ΠΊΠΆΠ΅
- PhpToken::tokenize() - Π Π°Π·Π±ΠΈΡΠ°Π΅Ρ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° PHP, Π½Π° ΠΌΠ°ΡΡΠΈΠ² ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² PhpToken
- token_name() - ΠΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ PHP-Π»Π΅ΠΊΡΠ΅ΠΌΡ