Drei spezielle Funktionen von PHP

Werbung
UniAccess PC-Praxis Internet Unix | Suchen | zum Inhalt von ZInfo
Nr. 04
Drei spezielle Funktionen von PHP
Nachdem das ZInfo in den letzten zwei Nummern das Thema "Webseiten mit
PHP" aufgegriffen hat, möchten wir hier noch auf drei spezielle
PHP-Funktionen hinweisen:
1. PHP kann eine Graphik aufbauen und als GIF-Bild ausgeben.
2. PHP kann ein PDF-Dokument ausgeben, das dann via Browser vom
Acrobat Reader angezeigt wird.
3. Und noch ein Counter, der die Anzahl Besuche zählt.
Aller guten Dinge sind drei. Dazu können Sie je ein Beispiel anklicken.
Ein Bild
erzeugen und
anzeigen
PHP kann GIF-Bilder erzeugen. Das GIF-Format eignet sich vor allem für
Strichzeichnungen, Illustrationen und Logos. Das simple Programm image.php
schickt zuerst den MIME-Header "image/gif", um dem Browser zu
signalisieren, dass kein HTML-Code folgt. Nun werden die Bildgrösse (in
Pixel) und die Farbe Blau-Grau (RGB-Werte) definiert. Darauf baut das
Programm mit der Funktion imageline() einen "dicken" Pfad von oben nach
unten auf, um das GIF schliesslich zu erzeugen und auszugeben. Zum
Imaging-Modell ist anzumerken, dass der Nullpunkt (0,0) des
zweidimensionalen Koordinatensystems oben links im Bildschirmfenster liegt.
Die Einheiten sind nicht typografische Punkte wie bei PostScript, sondern
Bildschirm-Pixel. Selbstverständlich könnten auch Polygone sowie Text und
Fonts "gezeichnet" werden -- bei Logos immer benötigt!
Der Quellencode des Programms. Wir halten fest, dass der Pfad vom Nullpunkt
(0,0) zum Punkt (0,450) verläuft. Weitere Beispiele finden Sie unter
http://hotwired.lycos.com/webmonkey/99/25/index3a.html.
Ein
PDF-Dokument
ausgeben und
anzeigen
Der Vorzug von PDF ist die Kontrolle über das Layout und den Ausdruck
durch den Ersteller, im Browser lassen sich PDF-Dokumente skalieren und auf
diese Weise gut betrachten. PDF-Files sind zudem hochgradig komprimiert.
Wir gehen davon aus, dass Sie das Programm Acrobat Reader installiert und
den Browser entsprechend konfiguriert haben (bei Netscape unter Preferences Navigator - Application); sonst sehen Sie nichts vom PDF-Dokument. Das
Beispiel pdf.php öffnet ein gewünschtes PDF-Dokument auf dem Web-Server
und schickt zuerst den MIME-Header "application/pdf", um zu signalisieren,
dass kein HTML-Code, sondern PDF folgt. Anschliessend werden die Rohdaten
direkt an den Browser weitergereicht (via Funktion fpassthru). Der Browser
ruft dann das Programm Acrobat auf. Es ist somit möglich, dass ein Server
direkt aus einer Datenbank heraus dem Benutzer ein Dokument schickt, ohne
dass dieser einen PDF-Link anklicken muss.
Das Programm ist so klein, dass der Quellencode hier abgedruckt wird:
<?php
$fp = fopen("/usr/local/info-sys/www/zi/publications
/pdf/Volkswagon.pdf", "r");
header("Content-type: application/pdf");
fpassthru($fp);
fclose($fp);
?>
Das File Volkswagon.pdf dient als Beispiel für ein PDF-Dokument Ihrer Wahl.
Zum Erzeugen von PDF-Dokumenten brauchen Sie das
Adobe-Lizenzprogramm. Dieses erlaubt es u.a., in ein Dokument URLs
einzufügen sowie PDF-Formulare zu definieren, die am Bildschirm ausgefüllt
werden können:
Für externe Links:
PDF-Dokument mit URL-Beispielen
Für Formularfelder:
ein Formular-Beispiel zum Ausfüllen.
Und noch ein
Counter
Der Aussagewert eines Counters, der die Besuche einer Seite zählt, ist aus
verschiedenen Gründen mit Vorsicht zu geniessen. Trotzdem soll dieses Beispiel
counter.php den Umgang mit Dateien demonstrieren. Das File "counter" enthält
die Zahl der aktuellen Besuche. PHP bietet einen umfangreichen Satz an
Funktionen zur Dateibearbeitung an. Das Arbeiten mit Dateien erfolgt nach
einem einfachen Prinzip. Zuerst muss die gewünschte Datei geöffnet werden, so
dass sie bearbeitet werden kann. Der Modus "r+" bedeutet, dass die Datei
existieren muss und zum Lesen und Schreiben geöffnet wird. Der Dateizeiger
steht am Anfang der Datei. Das kleine Programm liest den Zähler, erhöht ihn
um 1 und schreibt diesen schliesslich in das File zurück.
Der Quellencode des Programms. Die eingesetzten File-Funktionen sind fgets(),
rewind() und fputs(). Denken Sie daran, dass der User "www" (mit ID 498) die
Schreibberechtigung für das File counter haben muss. Wenn Sie Ihre Files auf
unserem FTP-Server abgelegt haben, ist es auch vertretbar, den Counter für
alle writeable zu machen (o+w), da der Sicherheitsmodus von PHP einen
unbefugten Zugriff verhindert. Andernfalls ist im AIX das Kommando acledit
zu verwenden. Betreffend File-Locking bei gleichzeitiger Abfrage siehe auch
ZInfo Nr. 2 unter "Alternative mit php".
Der Funktionsumfang von PHP ist so gross, dass PHP manchmal als Schweizer
Offiziersmesser bezeichnet wurde.
Peter Vollenweider
Herunterladen