Was wird PHP zum Parsen verwendet?
PHP ist eine Server-Skriptsprache und eine interpretierte Sprache. Es wird häufig bei der Erstellung kleiner und mittlerer Websites verwendet. Es ist nicht so schwer wie Java und lässt sich schneller entwickeln. Aber wie wird diese Skriptsprache vom Server analysiert?
Wir alle wissen, dass PHP in HTML eingebettet werden kann, aber das Suffix der Datei muss mit .php enden. Wenn es sich um .html handelt, wird der PHP-Codeausschnitt direkt vom Browser kommentiert Keine Demonstration mehr, schauen wir uns unten ein Beispiel an:
#test1.php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <?php echo "我是一段PHP脚本"; ?> </body> </html>
Das Ergebnis beim Zugriff über den Browser nach der Verwendung von PHPstudy:
Dies ist ein Absatz Sehr einfacher Code. Wir können sehen, dass der Server das analysierte Ergebnis direkt an den Browser weitergibt. Wenn der Server tatsächlich feststellt, dass das angeforderte Ressourcensuffix .php ist, ruft er den PHP-Parser auf, um ihn zu analysieren und auszuführen PHP-Code im Inneren. Dann antwortet die Ressource dem Client. Hier kommt also der Punkt: Wie wird PHP-Code analysiert? Zunächst müssen wir die verwandten Konzepte von CGI, FastCGI und PHP-FPM verstehen.
Verwandte Empfehlungen: „php-Einführungs-Tutorial“
Was ist CGI?
cgi (Common Gateway Interface) ist eigentlich ein Protokoll. Das Programm, das das CGI-Protokoll implementiert, kann als CGI-Programm bezeichnet werden, das mit dem Browser interagieren und auch über die Datenbank-API kommunizieren kann Datenquellen wie Datenbankserver und beziehen Daten von den Datenbankservern. Nach der Formatierung in ein HTML-Dokument wird es an den Browser gesendet, oder die vom Browser erhaltenen Daten können in die Datenbank eingegeben werden. Und php-cgi ist ein Protokoll zum Parsen von PHP-Code. Diese Vereinbarung hat jedoch mehrere Nachteile. Jedes Mal, wenn der Client eine PHP-Skriptdatei anfordert, forkt der Server zunächst einen Prozess auf und ruft den Parser auf, um das Skript zu analysieren. Wenn das Skript ausgeführt wird, wird der Prozess beendet und jeder Fork-Prozess wird über PHP ausgeführt. ini, um die Umgebung zu initialisieren. Der Prozess kann nicht wiederverwendet werden und der E/A-Overhead von php.ini wird erhöht. Begrenzt die Ausführungsgeschwindigkeit von PHP. Also entwickelte der intelligente PHP-Anbieter ein besseres CGI-Protokoll, nämlich das FastCGI-Protokoll, das später herauskam.
FastCGI-Protokoll
Gu Ming dachte, schnelleres CGI-Protokoll. Wo ist er also bald?
Fastcg löst zunächst die Probleme des ursprünglichen PHP-CGI. Es ermöglicht die Verarbeitung mehrerer Anforderungen in einem Prozess, anstatt den Prozess direkt nach der Verarbeitung einer Anforderung zu beenden den Webserver verbessern. Tatsächlich startet Fastcgi zunächst einen Master, analysiert die Konfigurationsdatei, initialisiert die Ausführungsumgebung und startet dann mehrere Worker. Wenn eine Anfrage eingeht, leitet der Master diese an einen Worker weiter und kann die nächste Anfrage sofort annehmen. Das vermeidet Doppelarbeit und ist natürlich hocheffizient. Und wenn nicht genügend Arbeiter vorhanden sind, kann der Master je nach Konfiguration mehrere Arbeiter vorab starten und warten. Wenn zu viele Arbeiter im Leerlauf sind, werden natürlich einige gestoppt, was die Leistung verbessert und Ressourcen spart.
php-fpm
PHP-FPM (FastCGI Process Manager: FastCGI Process Manager) ist ein PHPFastCGI-Manager für PHP vor 5.3.3. Für PHP, Es handelt sich um ein Patch-Paket, das die FastCGI-Prozessverwaltung in das PHP-Paket integrieren soll. Wenn Sie PHP vor PHP5.3.3 verwenden, müssen Sie es in Ihren PHP-Quellcode patchen und können es nach dem Kompilieren und Installieren von PHP verwenden. Tatsächlich können wir uns php-fpm als einen Interpreter vorstellen. Wir können den Befehl ps -aux | verwenden, um den entsprechenden Prozessstatus anzuzeigen, wie unten gezeigt:
Mit php-fpm können allgemeine Änderungen reibungslos neu gestartet werden Nach php.ini kann der php-cgi-Prozess nicht reibungslos neu gestartet werden, was bedeutet, dass Sie den Dienst neu starten müssen, um die neue Konfiguration neu zu laden. Der PHP-FPM-Verarbeitungsmechanismus hierfür besteht darin, dass neue Arbeiter neue Konfigurationen verwenden und bestehende Arbeiter sich nach der Verarbeitung der anstehenden Arbeit ausruhen können. Dieser Mechanismus wird verwendet, um den Übergang zu erleichtern.
但是传统的php-fpm的worker是同步阻塞的,这在一定程度下也限制了程序的运行速度,并且普通的PHP是无法常驻内存的,也就意味着我们每次执行代码都需要将相同的东西重新加载到新内存去,这点跟java的servlet就不同了,java的servlet在用户访问后实例化,下一个用户就不会再次进行实例化。为了解决这些问题,强大的Rango写出了swoole拓展,swoole和fpmd的进程模型是相同的,manager都是负责管理子进程的创建和回收。但php-fpm的worker进程是同步阻塞的,swoole的worker进程是异步非阻塞的。并且swoole的http-server和fpm的差异是http-server是内存常驻的,PHP程序变成长生命周期的了。变量和对象在使用请求结束后并不会销毁,可以复用。这也就是为什么我们说swoole开启了PHP的新世界。
我们可以用简单的几句就可以创建一个异步非阻塞的http-server甚至是http2协议的server。例如:
$http = new swoole_http_server("127.0.0.1", 9501); $http->on('request', function ($request, $response) { $response->end("<h1 id="Hello-nbsp-Swoole-nbsp-rand-nbsp">Hello Swoole. #".rand(1000, 9999)."</h1>"); }); $http->start();
swoole的高性能体现在它是一个纯c编写的拓展,并且使用了全内存缓存和异步IO。使得它相对于Node.js默认是单线程的无法利用全部CPU,Golang的协程调度本身有一定性能消耗相比,有着更加不错的性能。
用图解析一波,php-fpm是这样的(图片来源于网络):
而swoole的http-server是这样的(这里的cache应该理解成框架初始化环境所使用的内存):
Das obige ist der detaillierte Inhalt vonWas wird PHP zum Parsen verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
