de.comp.lang.php.* FAQ

27.10. Wie kann ich mit PHP WAP-Seiten erzeugen?

Keywords: WAP | WML | Header | Content-Type

Antwort von Richard Körber

Zuerst sollte man ein eigenes Verzeichnis für die WAP-Seiten anlegen und dem Apache beibringen, auch Dateien mit der typischen WAP-Endung .wml von PHP generieren zu lassen. Dies geschieht zum Beispiel mit folgender .htaccess-Datei in dem WAP-Verzeichnis:

AddType application/x-httpd-php .php .wml
DirectoryIndex index.wml

Schick ist, jetzt eine Subdomain wap auf dieses Verzeichnis verweisen zu lassen.

Es ist anschließend PHPs Aufgabe, mit der header() -Funktion einen korrekten Content-Type zu setzen. Ein Charset muss dabei angegeben werden! So könnte ein typisches WAP-PHP-Script beginnen:

<?php
  header("Content-Type: text/vnd.wap.wml;charset=iso-8859-1");
  print("\n\n<?xml version=\"1.0\"?>\n");
?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">

Darauf folgt der eigentliche WML-Content, in den man wie gewohnt PHP einbetten kann. Drei Dinge sind dabei wichtig:

  • WML ist eine XML-Sprache. Man muss penibelst darauf achten, dass der Code korrekt ist! Fehler in der Verschachtelung oder Schreibweise der Tags sind fatal.

    WAP lernt man zum Beispiel bei SELFWML oder bei WAP Basics.

  • Die von HTML bekannten Entities wie &ouml; funktionieren bei WAP nicht. Stattdessen verwendet man die ganz normalen Umlaute etc. Das kann unter Umständen recht ärgerlich werden, wenn man Funktionen geschrieben hat, die bereits solche Entities liefern. Laut WAP-FAQ sind aber auch Entities der Art &#246; erlaubt.

  • Handys haben recht wenig Speicherplatz. Die Seite sollte daher maximal 1400 Zeichen groß sein, damit alle Handys sie anzeigen können.

WAP erlaubt für Bilder ausschließlich das eigene Bildformat WBMP. Ein Konverter ist zum Beispiel im Paket von Deck-it enthalten. Bilder sollten sparsam verwendet werden und möglichst klein sein. Die Übertragung kostet Zeit, Geld und den sowieso schon knappen Speicherplatz auf dem Handy.

Cookies führen zwar zu keiner Fehlermeldung, aber man sollte sich nicht darauf verlassen, dass sie funktionieren!

Testen kann man die Seite mit WAP-Simulatoren, zum Beispiel Deck-it oder über verschiedene Online-Emulatoren. Letztendlich zählt aber nur eins: der Test mit dem echten Handy.

Antwort von Kerry W. Lothrop

Das Verarbeiten von WML-Formularen funktioniert mit PHP fast wie bei HTML-Formularen, mit dem kleinen Unterschied, dass manche Browser Formulardaten als Unicode versenden. Die Funktion utf8_decode() kann verwendet werden, um die Sonderzeichen zu dekodieren.

Seit GD 1.8 kann PHP auch WBMP-Grafiken erstellen. Die relevanten Funktionen heißen imagewbmp() , jpeg2wbmp() und png2wbmp() .

Valid HTML 4.01! Valid CSS!

27.10. Wie kann ich mit PHP WAP-Seiten erzeugen?
http://www.php-faq.de/q/q-php-wap.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team