Nun, ich bin hier ein bisschen pickle. Ich muss einige PHP auf Syntaxfehler überprüfen. Ich habe bemerkt, dass dieses Bit von der Kommandozeile laufen muss:
php -l somefile.php
Gibt es jedoch eine Möglichkeit, dies in einer PHP-Datei selbst auszuführen? Ich habe gesucht und denke, dass ich parse_str
-Funktion irgendwie verwenden kann, um dies zu erreichen, indem Sie es in ein $ _GET eingeben, aber ich kann nicht ganz verstehen, wie das funktioniert.
Jemand anders hat mir gesagt, dass ich die Funktion token_get_all()
php verwenden soll, um das festzustellen.
Aber ich kann nicht herausfinden, wie man das mit irgendeinem Ansatz macht? Kann mir hier jemand einen Beispielcode geben, um vielleicht loszulegen? Ich denke nicht, dass eval()
zu verwenden ist, obwohl ich ein eval($code)
funktionierte, aber denke nicht, dass ich das Skript ausführen sollte, wenn PHP-Syntaxfehler vorliegen.
Jede Hilfe wird wie immer sehr geschätzt!
Sie könnten shell_exec()
einfach so machen:
Dies gibt Ihnen die Ausgabe der Befehlszeilenoperation in der Zeichenfolge $output
.
Es ist sicherer, den Rückkehrstatus von php -l
Siehe diese Geige , um sie in Aktion zu sehen
php_check_syntax sollte den Trick machen. Wenn Sie PHP & gt; = 5.05 ausführen, lesen Sie den ersten Kommentar im Kommentarabschnitt für die Implementierung.
Sie können exec
verwenden, um nach Syntaxfehlern zu suchen.
Leider erhalten Sie damit nicht die Zeilennummer oder sagen Ihnen etwas über den Fehler. Dazu müssen Sie entweder den statischen Analyzer auf Ihrem Server installieren Gibt es einen statischen Code-Analysator [wie Lint] für PHP-Dateien? oder schreiben Sie Ihren eigenen Parser.
NB. token_get_all()
wird nichts eigenständig bestimmen, aber es ist eine nützliche Funktion, um einen Parser zu erstellen.
Tags und Links php syntax-error token