cli (Befehlszeilenschnittstelle) ist der Befehlszeilenmodus von PHP. Nachdem wir PHP auf dem Server installiert haben, wird im Allgemeinen davon ausgegangen, dass diese Datei /usr/local ist / bin/php, dann können wir den folgenden Befehl verwenden, um ein PHP-Skript unter SHELL auszuführen:
Kopieren Sie den Code Der Code ist wie folgt:
/usr/local/bin/php -f test.php
Nehmen Sie CLI SAPI als Beispiel, um den Kernteil von PHP zu analysieren Ausführung. CLI ist der PHP-Befehlszeilenmodus. Nach der Installation von PHP auf der Serverseite wird eine ausführbare Datei generiert, die durch Aufrufen des PHP-Befehls in der Shell ausgeführt werden kann.
Code kopieren Der Code lautet wie folgt:
PHP -f XX.php
Ausführungsprozess:
Befehlszeilenparameter analysieren;
PHP-Code kompilieren und ausführen;
Umgebung bereinigen, beenden;In der dritten Phase wird das PHP-Skript ausgeführt:
Schließen Sie die dritte Phase ab, indem Sie php_execute_script(handle_file) aufrufen. Welche Funktion wird schließlich zend_execute_scipts(...) aufgerufen? Diese Funktion ist eine Funktion mit variablen Parametern, die mehrere PHP-Skripte gleichzeitig ausführen kann.
In der Funktion zend_execut_scripts(…..) ruft der Kern die beiden Funktionen (zend_compile_file)( compile_file), (*zend_execute)( zend_op_array) auf;
Der an zend_execute übergebene Parameter ist der Rückgabewert von zend_compile_file, und der Opcode beginnt mit der Ausführung.
ps.: Warum sind diese beiden Zend-APIs Funktionszeiger?
Wenn die Engine initialisiert wird, verweisen zend_execute und zend_compile_file auf die Standardmethode, wenn die Engine initialisiert wird. Wir können Funktionszeiger während der Kompilierung und Ausführung überschreiben und so Haken für die Erweiterung der Engine hinterlassen. Beispiel: vld verweist zend_execute und zend_compile_file auf seine eigene Funktion, die die ursprüngliche Funktion kapselt und die Ausgabe von Opcode-Informationen hinzufügt.
Das Obige stellt den Ausführungsprozess des Interpreters für die PHP-Kernel-Erkundung vor, einschließlich der relevanten Aspekte. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.