2 Stimmen

Wozu dient die PHP-DOM-Manipulation?

Sorry, wenn die Frage zu allgemein ist, aber ich frage mich, was ist der Nutzen einer PHP-DOM-Manipulation im Vergleich zu Javascript-DOM-Manipulation?

Ich habe verstanden, dass es hauptsächlich zum Parsen von html oder xml verwendet wird, aber gibt es noch andere Anwendungen, für die es gut geeignet ist?

3voto

Pascal MARTIN Punkte 384469

Im Allgemeinen wird Javascript auf der Client-Seite, im Webbrowser, ausgeführt.
PHP hingegen wird auf der Serverseite ausgeführt.

Häufig müssen Sie XML-Dokumente auf dem Server bearbeiten; in diesen Fällen haben Sie nur PHP zur Verfügung und können sich nicht auf einen Browser / auf Javascript verlassen.

Abgesehen davon, wo es ausgeführt wird, gibt es nicht viel Unterschied zwischen PHP und Javascript, wenn es um DOM-Manipulationen geht - was eine schöne Sache über DOM ist: es ist ziemlich standardisiert.

Sie könnten zum Beispiel einen ATOM- oder RSS-Feed erzeugen wollen (die XML sind) für die neuesten Artikel auf einer Website; dies wird auf der Server-Seite durchgeführt.

Ein anderes Beispiel wäre ein Batch-Skript, das jede Nacht von einer Bank gesendete XML-Dateien mit allen Zahlungen des letzten Tages verarbeitet; für einen solchen Batch-Prozess gibt es absolut keinen Browser.

1voto

RobertPitt Punkte 55763

Es gibt ein paar, die Sie wählen können:

Die beste/einfachste Lösung ist PHP Einfaches Dom Verfügbar unter http://simplehtmldom.sourceforge.net/

  • Ein in PHP5+ geschriebener HTML-DOM-Parser
  • können Sie HTML auf eine sehr einfache Weise manipulieren
  • Einfacher Weg! Erfordert PHP 5+. Unterstützt
  • ungültiges HTML. Tags in einer HTML-Datei finden
  • Seite mit Selektoren genau wie jQuery.
  • Extrahieren von Inhalten aus HTML in einer
  • eine Zeile.

Alternativ können Sie PHPDom verwenden, das zwar fortgeschrittener ist und mehr Code enthält, dafür aber präziser kodiert. Verfügbar unter: http://php.net/manual/en/book.dom.php

<?php

$html = <<<EOF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  </head>
  <body>
    <p>&nbsp;</p>
  </body>
</html>
EOF;

// This one works perfectly.
$dom = new DOMDocument();
$dom->loadXML($html, LIBXML_DTDLOAD);

//Do here what you will.

print $dom->saveXML();

?>

0voto

Gordon Punkte 304254

DOM ist eine sprachunabhängige Schnittstelle, die vom W3C definiert wurde. :

Das Document Object Model ist eine plattform- und sprachneutrale Schnittstelle, die es Programmen und Skripten ermöglicht, dynamisch auf Inhalt, Struktur und Stil von Dokumenten zuzugreifen und diese zu aktualisieren. Das Dokument kann weiterverarbeitet werden, und die Ergebnisse dieser Verarbeitung können wieder in die dargestellte Seite integriert werden.

Der Zweck von DOM ist in PHP der gleiche wie in JavaScript. Aber da die Verwendung von DOM in JavaScript normalerweise im Browser stattfindet und eine sofortige sichtbare Auswirkung auf das DOM hat, mag es Ihnen anders erscheinen. Natürlich macht es deshalb keinen Sinn, eine Animation mit PHP DOM zu implementieren. Aber bedenken Sie, dass eine Animation immer noch nichts anderes ist als dynamischer Zugriff und Aktualisierung der Inhalte .

Weitere Informationen finden Sie unter dem Link.

0voto

Tom Morris Punkte 3969

Der Unterschied liegt in der Umgebung, in der Sie sie verwenden: In JavaScript befindet sich das DOM, das Sie manipulieren, auf der Client-Seite - dem Browser, der die HTML-Seite geladen hat, die Sie gerade betrachten. Wenn Sie ein Dokument mit der DOM-API in PHP bearbeiten, tun Sie dies mit einem Dokument auf der Serverseite.

Es scheint verwirrend, weil das DOM in beiden verwendet wird. Dies ist nur der Einfachheit halber geschehen: PHP implementiert die DOM-Befehle einfach, so dass man in PHP leicht den gleichen Code schreiben kann wie in JavaScript. Sie können die DOM-API-Unterstützung in PHP nicht verwenden, um das DOM des Browsers zu manipulieren.

(Hier gibt es eine Analogie zu den lokalen Speicher-APIs: Da die Browser nun über lokale Speicher-APIs verfügen, können Sie SQL im Browser verwenden, um Dinge in der lokalen Datenbank zu speichern - aber nur weil Sie SQL im clientseitigen Code und im serverseitigen Code schreiben, bedeutet das nicht, dass sie mit denselben Daten arbeiten).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X