token_get_all
(PHP 4 >= 4.2.0, PHP 5, PHP 7)
token_get_all — Spaltet angegebenen PHP-Quelltext in PHP-Tokens auf
Beschreibung
$source
[, int $flags
= 0
] ) : array
token_get_all() parst den angegebenen Quelltext source
und spaltet ihn mit Hilfe des lexikalischen Scanners der Zend-Engine in PHP-Sprachtokens auf.
Eine Übersicht über die verschiedenen Tokens finden Sie im Liste der Parsertoken oder Sie können die Funktion token_name() zum Übersetzen eines Tokens in seinen Textrepäsentanten verwenden.
Parameter-Liste
-
source
-
PHP-Quelltext der geparst werden soll.
-
flags
-
Gültige Flags:
-
TOKEN_PARSE
- Erkennt die Möglichkeit, reservierte Wörter unter bestimmten Umständen zu verwenden.
-
Rückgabewerte
Array mit Tokenbezeichner. Jeder einzelne Bezeichner ist entweder ein einzelnes Zeichen (z.B.: ;, ., >, !, usw.), oder ein Array bestehend aus drei Elementen. Das erste Element enthält den Tokenindex, das zweite Element den originalen Textinhalt und die Zeilennummer im dritten Element.
Changelog
Version | Beschreibung |
---|---|
7.0.0 |
Der optionale flags Parameter wurde mitsamt
dem TOKEN_PARSE -Flag hinzugefügt.
|
5.2.2 | Die Zeilennummer wird im dritten Element zurückgegeben |
Beispiele
Beispiel #1 token_get_all() Beispiel
<?php
$tokens = token_get_all('<?php echo; ?>');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Line {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Line 1: T_OPEN_TAG ('<?php ') Line 1: T_ECHO ('echo') Line 1: T_WHITESPACE (' ') Line 1: T_CLOSE_TAG ('?>')
Beispiel #2 Fehlerhaftes token_get_all() Verwendungsbeispiel
<?php
$tokens = token_get_all('/* comment */');
foreach ($tokens as $token) {
if (is_array($token)) {
echo "Zeile {$token[2]}: ", token_name($token[0]), " ('{$token[1]}')", PHP_EOL;
}
}
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Zeile 1: T_INLINE_HTML ('/* comment */')
T_INLINE_HTML
und nicht wie erwartet als
T_COMMENT
geparst wurde. Das liegt am fehlenden Start-Tag
im verwendeten Code. Das entspricht einem Kommentar außerhalb der PHP-Tags in
einer normalen Datei.
Beispiel #3 token_get_all() für eine Klasse, die ein reserviertes Wort benutzt
<?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;
}
}
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
T_OPEN_TAG T_WHITESPACE T_CLASS T_WHITESPACE T_STRING T_CONST T_WHITESPACE T_STRING T_LNUMBER
TOKEN_PARSE
-Flag würde das vorletzte Token
T_PUBLIC
statt T_STRING
sein.
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-token-get-all.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.