Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 9 Networking
  gp 9.1 Net_IPv4
  gp 9.2 Net_IPv6
  gp 9.3 Net_FTP
  gp 9.4 Net_POP3
  gp 9.5 Net_SMTP
  gp 9.6 Net_CheckIP
  gp 9.7 Net_IDNA
  gp 9.8 Net_Curl
  gp 9.9 Net_Socket
  gp 9.10 Net_UserAgent_Detect


Rheinwerk Computing

9.7 Net_IDNA  toptop


Besprochene Version: 0.5.0 Lizenz: LGPL
Klassendatei(en): Net/IDNA/php5.php

Net_IDNA ist eine Klasse, die es Ihnen erleichtert, mit internationalen Domainnamen umzugehen. Seit geraumer Zeit sind in vielen Toplevel-Domains wie .de oder .com Domainnamen mit Sonderzeichen wie www.möhrke.com zulässig. Da Sonderzeichen wie ä, ö oder ß nicht kompatibel mit dem Domain Name System sind, werden solche Domainnamen in den so genannten Punycode übersetzt. Net_IDNA nimmt diese Konvertierung für Sie vor bzw. konvertiert auch wieder aus dem Punycode zurück. Bitte beachten Sie dabei, dass das ß leider einfach durch ein ss dargestellt wird.

In diesem Paket sind zwei unterschiedliche Dateien für PHP 4 und 5 vorgesehen, in denen die Klassen auch unterschiedlich benannt sind. Nachfolgend werde ich mich nur auf PHP 5 beziehen.

Die Nutzung ist denkbar einfach, da Sie nur zwei Methoden benötigen. Ein wenig gewöhnungsbedürftig mag allerdings sein, dass die Methoden auf Basis von UTF-8 arbeiten. Ein- und Ausgaben müssen somit konvertiert werden, wenn Sie – was wahrscheinlich ist – ISO-8859–1 nutzen.

require_once('Net/IDNA/php5.php'); 
$coder=new Net_IDNA_php5(); 
 
$domain = utf8_encode('www.möhrke.com'); 
 
echo $coder->encode($domain);

Listing 9.9 Konvertierung nach Punycode

Als Ergebnis von Listing 9.9 wird der String www.xn--mhrke-jua.com ausgegeben. Geben Sie diesen in einen Browser ein, werden Sie an die korrekte Domain www.möhrke.com weitergeleitet.

Die Umkehrmethode decode() ist ein wenig umständlicher zu handhaben, da sie nur den reinen Domainnamen ohne www und Toplevel-Domain akzeptiert:

require_once("Net/IDNA/php5.php"); 
$coder=new Net_IDNA_php5(); 
 
// Domain uebergeben 
$domain = 'www.xn--mhrke-jua.com'; 
// Domain aufteilen 
$daten = explode('.',$domain); 
// Nur den eigentlichen Domainnamen dekodieren 
$dom_utf8=$coder->decode($daten[1]); 
// von UTF-8 nach ISO wandeln und ausgeben 
$dom_iso=utf8_decode($dom_utf8); 
echo "$daten[0].$dom_iso.$daten[2]";

Listing 9.10 Dekodierung einer Domain in Punycode

Auch wenn ich in diesen Beispielen keinen Wert auf die Fehlerbehandlung gelegt habe, möchte ich doch darauf hinweisen, dass die Fehler in diesem Paket auf Basis von Exceptions behandelt werden.

 <<   zurück
     
  Zum Katalog
Zum Katalog: PHP PEAR
PHP PEAR
Jetzt bestellen!
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Katalog: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Katalog: MySQL 5.6






 MySQL 5.6


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de