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