-
PHP - Teil 29 - PEAR: HTML-Dokumente generieren
23.10.2011 in PHP von daniel_koch
- Zum Downloadmanager hinzufügen
- PDF-Datei herunterladen
- Arbeitsmaterialien herunterladen
- Video
- Kommentare ansehen (2)
- Kategorie: PHP
- Erstellt mit Programmversion: PHP 5/6
- Kompatibel ab Programmversion: PHP 5
- Dateigröße (PDF): 1.3 MB
- Dateigröße (Arbeitsmaterial): 2 KB
- Bisherige Zugriffe: 107
Zum Downloadmanager hinzufügen PDF-Datei herunterladen (1.3 MB) Arbeitsmaterialien herunterladen (2 KB) Zugehöriges Video-Training ansehen
Tipp: Dieser Inhalt befindet sich auch auf der:
Lieber Gast …
… die Inhalte von PSD-Tutorials.de stehen nur registrierten Mitgliedern zur Verfügung. Damit wollen wir den Communitygedanken weiterführen. Als Mitglied trägst du - wenn auch nur im Kleinen - zum Puls der Community bei. Und nur so ist es möglich, weiterhin hochwertige Inhalte für alle bereitzustellen.
Vorteile der kostenlosen Mitgliedschaft
Mit der kostenlosen und schnell erledigten Registrierung erhältst du viele nachhaltige Vorteile, die wir dir hier in aller Kürze aufzeigen möchten:
- PSD steht für professionelles Know-how in den Bereichen Bildbearbeitung mit Photoshop, Fotografie, Webentwicklung, Layout- und Vektorbearbeitung, 3D-Bearbeitung mit Cinema 4D und Co.
- Über 2200 Tutorials mit druckbarer PDF-Datei und teilweise den zugehörigen Arbeitsmaterialien
- Mehr als 500 Video-Trainings als Stream zur Direktanzeige und zum Download
- Abruf von über 1000 Downloads zu Photoshop-Presets, 3D-Modellen, Grußkarten, Texturen & Co
- Zugriff auf ein sehr aktives Forum mit Antworten im Minutentakt
- Deine Daten sind sicher. Sie werden nicht weitergegeben! Die Mitgliedschaft kann jederzeit und ohne Aufwand wieder gelöscht werden.
Reinschnuppern als Gast
Niemand kauft gerne die Katze im Sack, auch wenn sie kostenlos ist. Wir haben eine Handvoll Tutorials und Video-Trainings ausgesucht, die du auch als Gast ohne Registrierung ansehen kannst. Gefallen sie dir, stehen dir nach der Registrierung alle oben genannten Inhalte zur Verfügung.
- Download: Sepia-Vintage-Effekt-Aktion
- Download: Spiegelungen 2
- Download: Vektor-Logo (Eidechse)
- Tutorial: Linien zum Glühen bringen
- Tutorial: Ballons aus einer Schublade
- Tutorial: Neue Pinsel erstellen leicht gemacht
- Tutorial: Kommerzielle Fotografie 01: Berufswunsch Fotografie
- Videotraining: Die Programmoberfläche und der Arbeitsbereich von Adobe InDesign
- Videotraining: Lichtscheinkontureneffekt mit Animation
- Videotraining: CorelDRAW X6 Grundlagen - Hilfsmittel Freihand, 2-Punkt-Linie, Bezier, B-Spline, Polylinie, Stift, 3-Punkt-Kurve
- Videotraining: CorelDRAW X6 Grundlagen: Hilfsmittel Form - Heranziehen, Zurückweisen
Das Punktesystem
Einen winzigen Haken gibt es noch. Es gibt bei uns ein Punktesystem. Damit soll erreicht werden, dass Mitglieder sich aktiv in unserer Community beteiligen. Sobald du im Forum schreibst oder Tutorials kommentierst, bekommst du Punkte. Mit diesen Punkten kannst du wiederum Tutorials anschauen oder Downloads herunterladen. Mit der Registrierung bei PSD-Tutorials.de erhältst du ein Startguthaben von 100 Punkten, womit du schon ein gutes Stück weit kommst.
PHP-Workshop-DVD - Basics & Tricks
- 12 Stunden Video-Training, 480 PDF-Seiten Tutorials
- Basics, Formulare, Datenbanken, XML und Co.
- 4 Stunden Bonusmaterial zum Webdesign (mit Photoshop
Kommentare
Tutorial empfehlen
Anleitung (Bilder + Extras werden nur für Mitglieder eingeblendet)
Ihr bekommt HTML_Page2 von der Seite http://pear.php.net in der Rubrik HTML.

install pear/HTML_Page2-0.6.0beta
Zum Testen des Pakets legt man am besten eine neue PHP-Datei an. Das folgende Skript erzeugt eine gültige XHTML-Datei.
<?php
require_once 'HTML/Page2.php';
$page = new HTML_Page2();
$page->setTitle('Meine erste HTML-Seite');
$page->addBodyContent('<h1>Hallo, Welt!</h1>');
$page->display();
?>
Ruft man diese Seite im Browser auf, ergibt sich folgendes Bild:

require_once() wird die HTML_Page2-Klasse eingebunden. Durch new HTML_Page2() wird ein neues Objekt dieser Klasse erzeugt. Da wir uns zunächst auf den einfachsten Fall einer XHTML-Datei konzentrieren wollen, werden die im Dateikörper anzuzeigenden Elemente jeweils über addBodyContent() definiert. Es spielt hierbei übrigens keine Rolle, wie viele HTML-Elemente innerhalb einer addBodyContent()-Anweisung notiert werden.Um den XHTML-Code zu erzeugen, wird abschließend
display() verwendet. Der generierte XHTML-Quelltext stellt sich folgendermaßen dar:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta name="Generator" content="PEAR HTML_Page" /> <title>Meine erste HTML-Seite</title> </head> <body> <h1>Hallo, Welt!</h1> </body> </html>
Wie bereits erwähnt, handelt es sich hierbei um die einfachste Form einer XHTML-Datei.
Wenn ihr HTML_Page2 einsetzt, solltet ihr mit den Prinzipien von XHTML vertraut sein. In diesem Tutorials kann hierzu keine Einführung geboten werden. Achtet aber vor allem darauf, dass die als deprecated eingestuften Elemente wie
font usw. innerhalb von XHTML-Dokumenten nicht verwendet werden dürfen.Seitentitel und Metatags definieren
Vollständige XHTML-Dokumente müssen eintitle-Element besitzen. Aus diesem Grund wird, wie das bereits gezeigt wurde, bei HTML_Page2 automatisch ein Seitentitel mit eingefügt. Da dieser mit einem Standardwert belegt ist, muss er im Regelfall geändert werden.Als weiteres wichtiges Kriterium einer Webseite sind Meta-Angaben zu sehen. (Auch wenn diese nach XHTML-Syntax nicht zum Grundgerüst gehören müssen). Die folgende Syntax fügt in ein Dokument sowohl einen Seitentitel wie auch diverse Meta-Angaben ein. Zusätzlich wird demonstriert, wie sich die Dokumenttyp-Angabe für das Dokument ändern lässt.
Durch den Dokumenttyp wird festgelegt, welche Elemente innerhalb einer Datei vorkommen dürfen. Nur durch die Angabe eines Dokumenttyps ist eine XHTML-Datei gültig (valid). Für XHTML-Dokumente können die Werte
xhtml1-strict.tdt, xhtml1.transitional.dtd usw. angegeben werden. Weiterführende Informationen hierzu erhaltet ihr wieder auf den Seiten des W3C unter http://w3.org.Durch die folgende Syntax wird als Dokumenttyp XHTML 1.0 Strict definiert. Zusätzlich wird die Dokumentsprache der XHTML-Datei angegeben.
<?php
require_once 'HTML/Page2.php';
$p = new HTML_Page2(array (
'doctype' => 'XHTML 1.0 Strict',
'language' => 'en',
));
$p->setTitle("psd-tutorials");
$p->setMetaData("author", "psd-tutorials.de");
$p->setMetaData("keywords", "Tutorials, Photoshop, Joomla");
$p->setMetaData("robots", "INDEX,FOLLOW");
$p->addBodyContent("<h1>Seiteninhalt</h1>");
$p->display();
?>
Dem Objekt HTML_Page2 wird ein Array mit dem Dokumenttyp und der Sprachversion übergeben. Über
doctype wird der Dokumenttyp und über language die Sprachversion angegeben. Der Seitentitel wird über setTitle() angegeben. Um Meta-Angaben zu definieren, wird die setMetData()-Angabe verwendet. Als erster Parameter wird die Meta-Angabe und als zweiter deren Wert erwartet. Während jede XHTML-Datei exakt nur einen Dateititel besitzen darf, kann die Anzahl der eingesetzten Meta-Angaben frei gewählt werden.Die Ausgabe sieht folgendermaßen aus:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta name="Generator" content="PEAR HTML_Page" /> <meta name="author" content="psd-tutorials.de" /> <meta name="keywords" content="Tutorials, Photoshop, Joomla" /> <meta name="robots" content="INDEX,FOLLOW" /> <title>psd-tutorials</title> </head> <body> <h1>Seiteninhalt</h1> </body> </html>
Als Werte für die Meta-Angaben sollten selbstverständlich nur solche verwendetet werden, die auch tatsächlich sinnvoll sind. HTML_Page2 akzeptiert aber auch solche, die nicht offiziell zugelassen sind.
Style Sheets und Skripte einbinden
XHTML soll u.a. dazu dienen, Inhalt und Design voneinander zu trennen. Daher sind in XHTML solche Elemente wiefont usw. nicht mehr gestattet. (Wobei deren Einsatz auch in anderen HTML-Standards nicht sinnvoll ist, seit es CSS gibt). Diese sollen ausnahmslos durch Stylesheets ersetzt werden. Wie sich Stylesheets integrieren, wird anhand des folgenden Beispiels gezeigt:
<?php
require_once 'HTML/Page2.php';
$p = new HTML_Page2();
$p->setTitle("medienwerke");
$p->addStyleSheet('css/styles.css');
$p->addStyleSheet('css/print.css', 'text/css', 'print');
$p->addBodyContent("<h1>Seiteninhalt</h1>");
$p->display();
?>
Nach den nun schon bekannten Elementen werden über
addStyleSheet() zwei CSS-Dateien eingebunden. Dabei handelt es sich bei der ersten Datei um die normale CSS-Datei, während über die zweite Anweisung ein druckoptimiertes Stylesheet eingebunden wird. Auch hier wieder ein Blick auf die generierte Syntax.<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta name="Generator" content="PEAR HTML_Page" /> <title>medienwerke</title> <link rel="stylesheet" href="css/styles.css" type="text/css" /> <link rel="stylesheet" href="css/print.css" type="text/css" media="print" /> </head> <body> <h1>Seiteninhalt</h1> </body> </html>
Inline-CSS-Angaben sind ebenso möglich. Dabei werden die gewünschten CSS-Eigenschaften
addStyleDeclaration() zugewiesen.
<?php
require_once 'HTML/Page2.php';
$p = new HTML_Page2();
$p->setTitle("medienwerke");
$p->addStyleDeclaration('
h1 {
font-style: italic;
}
');
$p->addBodyContent("<h1>Seiteninhalt</h1>");
$p->display();
?>
Das Ergebnis sieht im Browser folgendermaßen aus:

<?php
require_once 'HTML/Page2.php';
$p = new HTML_Page2();
$p->setTitle("medienwerke");
$p->addScript('js/skripte.js');
$p->addBodyContent("<h1>Seiteninhalt</h1>");
$p->display();
?>
Über
addScript() wird die Skript-Datei angegeben. Der erzeugte XHTML-Code stellt sich folgendermaßen dar:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta name="Generator" content="PEAR HTML_Page" /> <title>medienwerke</title> <script type="text/javascript" src="js/skripte.js"></script> </head> <body> <h1>Seiteninhalt</h1> </body> </html>
Standardmäßig geht
addScript() von JavaScript-Dateien aus, die eingebunden werden sollen. Daher wird automatisch type="text/javascript" angegeben. Selbstverständlich könnt ihr über addScript() aber auch andere Skripttypen einbinden. Dazu muss dieser Typ aber explizit angegeben werden. Angenommen also, ihr wollt ein JScript einbinden. In diesem Fall sähe die Syntax von addScript() folgendermaßen aus:
$p->addScript('js/skripte.js',$type = 'text/jscript');
Und hier der generierte Quellcode:
<script type="text/jscript" src="js/skripte.js"></script>
Inline-Skripte lassen sich ebenfalls definieren. Verwendet wird dafür addScriptDeclaration().
$p->addScriptDeclaration('
function ausgabe() {
alert("Hallo, Welt!");
}
');
Damit eine solche Funktion nun beispielsweise beim Laden der Seite aufgerufen werden kann, könnte man dem
body-Element den Event-Handler onload zuweisen. Der Zugriff auf das body-Element gelingt über setBodyAttributes().
$p->setBodyAttributes('onload="ausgabe()"');
Die Ergebnissyntax sieht folgendermaßen aus:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3c.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta name="Generator" content="PEAR HTML_Page" />
<title>medienwerke</title>
<script type="text/javascript">
// <!--
function ausgabe() {
alert("Hallo, Welt!");
}
// -->
</script>
</head>
<body onload="ausgabe()">
<h1>Seiteninhalt</h1>
</body>
</html>

Es sei nochmals darauf hingewiesen, dass der Einsatz von HTML_Page2 nur dann sinnvoll ist, wenn man mit der XHTML-Syntax vertraut ist. Denn nur dann, wenn tatsächlich auch Elemente so im Ausgangsdokument verwendet werden, wie das in XHTML vorgeschrieben ist, wird das Zieldokument dann auch XHTML entsprechen. Und genau das ist ja das Ziel von HTML_Page2.
-
Reklame
-
-
- Fotobüchern
- Umrandung um Textfeld
- Kanten glätten bei meinem Bild oder Vektor?
- After Effects Ram-Vorschau - Problem mit Cache (aktualisert nicht)
- blender render stürzt ständig ab
- jQuery - Größe von einem Frameset ändern?
- [CS5] "Löschen-Mitteilung"
- Zerissenes Foto
- Biete Programmierung Ihres PSD-Designs
- Fehler beim Platzieren von Bildern
- Zeilenumbruch CS4
- Gestaltung eines Logos
- Kaufberatung Drucker
- Dynamische Auswahlliste: Name und ID übergeben
- Adobe Encore - Probleme Schaltflächen Unterbild
- 2 Fotos mit unterschiedlichem Schlagschatten in einer Datei
- Copyright-Frage - öffentliche Veranstaltung
- Photoshop auf Mini Lappi
- Link auf Anker - Firefox Problem
- Auftrag: Individuelle Flash-Gallerie
-
-
Aktuelles Commag
Anzeige
-
Anzeige


drichter
28.10.2011 - 10:01
Das Tutorial ist gut gemacht. Aber mir persönlich fällt wirklich kein Verwendungszweck für dieses PEAR-Paket ein. Meistens arbeite ich doch mit irgend einer Template-Engine zusammen, wo man den Container der Seite einmal anlegt und dann ist gut. Die wechselnden Inhalte werden dann über Subtemplates eingebunden. Wofür brauche ich dann ein Paket, das für mich jedes mal neu das XHTML zusammenbaut? Mich überzeugt dieses Konzept nicht. Dennoch war es interessant zu lesen.
Alukard_der_III
24.10.2011 - 22:37
Sehr cooles Tut.
Super erklärt und verdammt nützlich.
Werde es sicher bald mal umsetzen.
Danke