Heim >Backend-Entwicklung >PHP-Tutorial >phpmaster | Serverseitiges HTML-Handling mit PHPQuery
PHPQuery ist eine serverseitige, kettenfähige, CSS3-Selektor-DOM-API (DOM) -Modellmodell (DOM), die auf der Jquery JavaScript-Bibliothek basiert.Dies ist die Definition auf der offiziellen PhpQuery -Projektseite. Wenn Sie JQuery verwendet haben, haben Sie eine Vorstellung davon, wie es viele Aufgaben vereinfachen kann, die eine DOM -Manipulation erfordern. PHPQuery bietet genau die gleichen Funktionen, die in Ihrem serverseitigen PHP-Code verwendet werden müssen. Sie können sich auf ein gutes Aufnehmen von unordentlichem HTML -Code -Generierung unter Verwendung von Echo -Anweisungen und ähnlichen Methoden sagen. Sie haben Zugriff auf die meisten Funktionen von JQuery in PHPQuery, die im Großen und Ganzen in die nachstehend genannten 4 aufgebliebenen Aufgaben unterteilt werden können:
<span><span><?php </span></span><span><span>require("phpQuery/phpQuery.php"); </span></span><span><span>$doc = phpQuery<span>::</span>newDocument("<div/>");</span></span>Der obige Code erstellt ein grundlegendes HTML -Dokument mit einem DIV -Tag. Die Bibliothek bietet verschiedene Methoden zum Erstellen von Dokumenten. Ich habe das einfachste verwendet, aber Sie können andere in Demo.php und der Dokumentation finden. Jetzt müssen wir eine ungeordnete Liste erstellen und unserem HTML -Dokument hinzufügen.
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div"]->append("<ul><li>Product Name</li><li>Price</li></ul>"); </span></span><span><span>$products = array( </span></span><span> <span>array("Product 1","<span><span></span>"</span>), </span></span><span> <span>array("Product 2","<span><span></span>"</span>), </span></span><span> <span>array("Product 3","<span><span></span>"</span>)); </span></span><span> </span><span><span>foreach($products as $key=>$product) { </span></span><span> <span>$doc["div ul"]->append("<li><span><span>$product[0]</span></li><li><span>$product[1]</span></li>"</span>); </span></span><span><span>} </span></span><span><span>print $doc;</span></span>Sie können sehen, dass wir jetzt die ungeordnete Liste haben. Aber alle Elemente befinden sich in einer einzigen Spalte, die die Standardeinstellung ist. Wir müssen die gleichmäßigen Elemente der Liste in eine zweite Spalte verschieben.
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div ul"]->attr("style", "width:420px;"); </span></span><span><span>$doc["div ul"]->find("li:even")->attr("style","width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:odd")->attr("style","width:200px; float:left; padding:5px; list-style:none;");</span></span>Ich verwende das Style -Attribut, um die CSS -Stile zu definieren, die für unser Beispiel hier erforderlich sind. Es wird jedoch nicht empfohlen, Inline -Stile zu verwenden, es sei denn, es ist wirklich erforderlich. Verwenden Sie immer CSS -Klassen, um Stile hinzuzufügen. Lassen Sie uns nun den Header und sogar nummerierte Zeilen mit PhpQuery -Methoden hervorheben.
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div ul"]->find("li:nth-child(4n)")->attr("style","background:#EEE; width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:nth-child(4n-1)")->attr("style","background:#EEE; width:200px; float:left; padding:5px; list-style:none;"); </span></span><span><span>$doc["div ul"]->find("li:lt(1)")->attr("style","background:#CFCFCF; width:200px; float:left; padding:5px; list-style:none;");</span></span>Wir haben unser einfaches Beispiel abgeschlossen, und Sie sollten jetzt eine Vorstellung davon haben, wie PHPQuery verwendet werden kann, um die Server-Seite der HTML-Generation zu vereinfachen. Alles, was wir getan haben, ist fast das gleiche wie mit JQuery, außer dass wir alle Aktionen gegen das $ DOC -Objekt ausgeführt haben.
<span><span><?php </span></span><span><span>require("phpQuery/phpQuery.php"); </span></span><span><span>$doc = phpQuery<span>::</span>newDocument("<div/>");</span></span>Lassen Sie es uns nun mit PhpQuery tun und den Code und die Vorteile vergleichen.
<span><span><?php </span></span><span><span>... </span></span><span><span>$doc["div"]->append("<ul><li>Product Name</li><li>Price</li></ul>"); </span></span><span><span>$products = array( </span></span><span> <span>array("Product 1","<span><span></span>"</span>), </span></span><span> <span>array("Product 2","<span><span></span>"</span>), </span></span><span> <span>array("Product 3","<span><span></span>"</span>)); </span></span><span> </span><span><span>foreach($products as $key=>$product) { </span></span><span> <span>$doc["div ul"]->append("<li><span><span>$product[0]</span></li><li><span>$product[1]</span></li>"</span>); </span></span><span><span>} </span></span><span><span>print $doc;</span></span>PHPQuery ist einfach, wenn Sie bereits wissen, dass Sie mit JQuery arbeiten. Der größte Teil des oben genannten Code wird selbsterklärend sein. Ich möchte jedoch erwähnen, dass sich PQ () auf das aktuelle Dokument bezieht. Alle anderen sind JQuery -Funktionen. Und obwohl beide ähnlich aussehen, bietet der Code, der PHPQuery verwendet, eine bessere Qualität und Erweiterbarkeit. Überlegen Sie, wie spröde der ursprüngliche Code sein kann, wenn Sie später zusätzliche Funktionen hinzufügen müssen. Nehmen wir an, wir möchten zusätzliche Validierung für Markierungen auf der Grundlage der Arbeitserfahrung hinzufügen. In diesem Szenario müssen Sie eine andere Methode hinzufügen und das zurückgegebene Ergebnis in der Foreach -Schleife zuweisen. Das bedeutet, dass Sie bereits geschriebenen Code ändern müssen, um gegen das Open-Clo-Prinzip zu verstoßen:
Softwareentitäten (Klassen, Module, Funktionen usw.) sollten für die Erweiterung geöffnet sein, jedoch für die Änderung geschlossen werden.Mit dem zweiten Beispiel, das PHPQuery verwendet, wird der Code zunächst ohne Validierung generiert, und dann übergeben wir die Tabelle in jede Funktion und die Änderungen werden in die ursprüngliche Tabelle gegeben. Jede Funktion wirkt sich nicht auf die anderen Funktionen aus, sodass wir eine neue Funktion für neue Anforderungen schreiben und mit den anderen Funktionen außerhalb der Schleife verwenden können. Wir ändern keinen bereits vorhandenen Code, was gut klingt, oder? Dies wird als Dekoration bezeichnet:
Das Dekorateurmuster ist ein Designmuster, mit dem das Verhalten dynamisch zu einem vorhandenen Objekt hinzugefügt werden kann.
Wie installiere ich PhpQuery? Sie können Ihrem Projekt PhpQuery hinzufügen, indem Sie den Befehlskomponisten ausführen, der PhpQuery/PhpQuery benötigt. Dadurch wird die neueste stabile Version von PhpQuery und seine Abhängigkeiten heruntergeladen und installiert.
Kann ich PhpQuery mit AJAX verwenden? Mit dieser Methode können Sie asynchrone HTTP -Anforderungen an den Server senden und die Antwort mit PhpQuery manipulieren. Mit dieser Methode können Sie benutzerdefinierte Animationen erstellen, indem Sie die CSS -Eigenschaften im Laufe der Zeit ändern. Mit diesen Methoden können Sie in einem Dokument durch die Elemente navigieren.
Das obige ist der detaillierte Inhalt vonphpmaster | Serverseitiges HTML-Handling mit PHPQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!