Übersicht » Einführung OOP
Die vorausgehenden Beispiel-Klassen haben den Nachteil, dass aus ihnen kein Vorteil bei der praktischen
Anwendung ersichtlich wird. So könnte der Text für die Ausgabe einfach als String in den Quelltext einer HTML-Datei
geschrieben oder in einer Variablen gespeichert werden. Eine etwas praktischere Anwendung bestünde in der Definition einer
kleineren Parserklasse zur Verarbeitung von XML- Dokumenten.
Obwohl die SimpleXML-Funktionen und Methoden einfacher zu handhaben wären, weiterhin die DOM Schnittstelle sich ebenfalls
anbieten würde, so bietet eine kleine, ausbaufähige Parserklasse als Übungsobjekt zumindest eine Vorstellung vom praktischen
Nutzen und den Möglichkeiten der objektorientierten Programmierung.
Beispiel eines kleinen XML-Dokumentes (test-01.xml):
<?xml version="1.0"?> <exempel> <titel> <headline>OOP</headline> <subtitel>Klassen und Objekte</subtitel> </titel> <inhalt> <text>Nur ein Test...</text> </inhalt> </exempel>
Listing einer einfachen Parserklasse (simpler-parser-01.php):
<?php /*-- Definieren einer einfachen Parserklasse ---------------*/ class SimplerParser { private $muster1 = "<headline>(.+?)<\/headline>"; private $muster2 = "<subtitel>(.+?)<\/subtitel>"; private $muster3 = "<text>(.+?)<\/text>"; public function getTitel($such) { if (preg_match("/".$this->muster1."/", $such, $fund)){ return $fund[1]; } } public function getSubt($such) { if (preg_match("/".$this->muster2."/", $such, $fund)){ return $fund[1]; } } public function getText($such) { if (preg_match("/".$this->muster3."/", $such, $fund)){ return $fund[1]; } } } /*------------------------------------------------------------ Erzeugen und Instanziieren des Objektes SimplerParser sowie die Ausgabe von Titel, Untertitel und Text. -------------------------------------------------------------- */ if (file_exists("test-01.xml")) { $lesen = file_get_contents("test-01.xml"); $gebeaus = new SimplerParser(); echo "<h1>".htmlspecialchars($gebeaus->getTitel($lesen))."</h1>\n". "<h2>".htmlspecialchars($gebeaus->getSubt($lesen))."</h2>\n". "<p>" .htmlspecialchars($gebeaus->getText($lesen)) ."</p>\n"; } else {echo "Die gesuchte Datei ist nicht vorhanden!"; } ?> <?php
Die Ausgabe beim Aufruf der kleinen XML-Datei (test-01.xml) mit dem voraus-gehenden Script (simpler-parser-01.php):
Testausgabe der Parserklasse
Es sei angemerkt, sollte mit dem Code-Listing von dieser Seite der Versuch unternommen werden, ein anderes XML-Dokument zu parsen, müssten die verwendeten Ausdrücke für die Suchmuster entsprechend angepasst werden.
weitere Beispiele » Socket Klasse
Einstieg in PHP
Übersicht
Diverse Themen