PHP 4.3

7.9 Groß- und Kleinschreibung

Wir nähern uns dem Ende der Lerneinheit und möchten Ihnen gern noch zwei Funktionen vorstellen, mit denen Sie Einfluss auf die Groß- und Kleinschreibung von Zeichenketten nehmen können. Dazu dienen die PHP-Funktionen strtoupper() für die Umwandlung einer Zeichenkette in Großbuchstaben, bzw. strtolower() für die Umwandlung in Kleinbuchstaben.

Ein Anwendungsbeispiel für beide Funktionen wären die Authentifizierungsdaten eines registrierten Benutzers eines Online-Shops. Um hier mögliche Unsicherheiten des Benutzers hinsichtlich der Schreibweise zu beseitigen, könnten Sie sowohl die in einer Datenbank oder einer Datei gespeicherten Account-Daten als auch die bei der Eingabe des Nutzers während einer erneuten Anmeldung übergebenen Daten grundsätzlich in Groß- oder Kleinbuchstaben umwandeln.

Beide Funktionen sind in ihrer Anwendung einfach gestaltet. Sie erwarten lediglich die betreffende Zeichenkette als Parameter und geben die umgewandelte Zeichenkette zurück. Leider ist die richtige Umwandlung von Umlauten von der Konfiguration des Webservers abhängig, kann also auch den Konventionen anderer Länder entsprechen. Mit der Funktion setlocale() können Sie die Konfiguration beeinflussen - aber leider nur im Rahmen dessen, was im Betriebssystem vorgesehen ist. Zahlen und Sonderzeichen bleiben von der Umwandlung unbeeinflusst.

Skriptbeispiel strtoupper() und strtolower()
<?php

  $user = "Peter Gößke";
  $password = "A03'%Bb";

  echo "Schreibweise vor der Bearbeitung:<br>";
  echo "Benutzername: " . $user . "<br>";
  echo "Passwort: " . $password . "<br><br>";

  $user = strtoupper($user);
  $password = strtolower($password);

  echo "Schreibweise nach der Bearbeitung:<br>";
  echo "Benutzername: " . $user . "<br>";
  echo "Passwort: " . $password . "<br><br>";

?>


Browserausgabe
Schreibweise vor der Bearbeitung:
Benutzername: Peter Gößke
Passwort: A03'%Bb

Schreibweise nach der Bearbeitung:
Benutzername: PETER GÖßKE
Passwort: a03'%bb

Sollten Sie bei der Umwandlung von Umlauten Fehler feststellen, kann der Einsatz der Funktion setlocale() möglicherweise helfen. Ein locale ist die Definition einer Teilmenge der Benutzereinstellungen eines Betriebssystems hinsichtlich der Sprache und kultureller Konventionen. Sie besteht aus einer oder mehreren Kategorien. Jede dieser Kategorien besitzt einen eigenen Namen und kontrolliert bestimmte Aspekte des Systemverhaltens. Die Kategorienamen entsprechen den Namen folgender Konstanten, die in neuen PHP-Versionen vorhanden sind:

LC_CTYPE - Buchstabenklassifizierung und -umwandlung, z.B. für strtoupper()
LC_COLLATE - für String-Vergleiche; z.Zt. noch nicht in PHP implementiert
LC_TIME - Datums- und Zeitformate
LC_NUMERIC - Numerische, nichtfinanzielle Formate
LC_MONETARY - Formatierung von Geldwerten; z.Zt. noch nicht in PHP implementiert
LC_ALL - wirkt sich auf alle aufgeführten Kategorien aus

Für uns ist hinsichtlich der Umwandlung von Buchstaben nur LC_CTYPE interessant. Je nach Betriebssystem gilt es, unterschiedliche Parameter anzugeben:

Unix Windows (2000)
de_DE German_Germany.1252
en_US English_United States.1252
en_GB English_United Kingdom.1252
fr_FR French_France.1252
pl_PL Polish_Poland.1250

Dazu ein kurzes Skript, welches den Einsatz von setlocale() mit der LC_CTYPE-Angabe für UNIX-Systeme verdeutlicht:

<?php

  $string = "äöüáàâóéèùúûòôß";
  setlocale (LC_CTYPE, "de_DE");
  echo strtoupper ($string)."<br>";
  setlocale (LC_CTYPE, "fr_FR");
  echo strtoupper ($string)."<br>";
  setlocale (LC_CTYPE, "en_GB");
  echo strtoupper ($string)."<br>";
  setlocale (LC_CTYPE, "pl_PL");
  echo strtoupper ($string)."<br>";

?>

 

Kommentare (0)

Ihr Kommentar

Name