Funktion chr() - Zeichen eines ASCII-Werts zurückgeben

Der ASCII-Zeichensatz umfasst inklusive der erweiterten Tabelle 256 Zeichen. Jedes Zeichen ist einem ASCII-Wert zugeordnet, der bei 0 beginnt und bei 255 endet und entweder dezimal, hexadezimal oder oktal angegeben werden kann. Beispielsweise entspricht der dezimale ASCII-Wert 65 (hex. 41, oktal 101) dem Zeichen A. Mit der PHP-Funktion chr() kann man über den ASCII-Wert das zugeordnete Zeichen zurückgeben lassen. Der ASCII-Wert wird dabei innerhalb der runden Klammern als Parameter angegeben. Nachfolgend ist ein Beispielcode, um das Zeichen für den dezimalen ASCII-Wert 65 ausgeben zu lassen.

<?php

// Ausgabe A
echo chr(65);

?>

ASCII-Wert hexadezimal angeben

Der ASCII-Wert kann auch hexadezimal angegeben werden. Hierfür setzt man dem Wert ein 0x voran. Dadurch erkennt der PHP-Interpreter, dass das ein hexadezimal angegebener Wert ist. Nachfolgend ist ein Beispielcode, um das Zeichen für den hexadezimalen ASCII-Wert 41 (entspricht dezimal 65, Zeichen A) auszugeben.

<?php

// Ausgabe A
echo chr(0x41);

?>

ASCII-Wert oktal angeben

Es ist auch möglich, den ASCII-Wert oktal anzugeben. Hierbei wird dem Wert ein 0 vorangestellt. Beim nachfolgenden Beispielcode wird das Zeichen für den oktalen ASCII-Wert 101 (entspricht Buchstabe A) ausgegeben.

<?php

// Ausgabe A
echo chr(0101);

?>

Alle Zeichen mit einer for-Schleife ausgeben

Mit einer for-Schleife und der Funktion chr() ist es möglich, alle Zeichen des ASCII-Zeichensatzes inklusive den Werten 128 - 255 aus der erweiterten ASCII-Tabelle auszugeben. Die nicht druckbaren Zeichen 0 - 31 können dabei nicht ausgegeben werden, da sie lediglich Steuerzeichen sind. Beim folgenden Code durchläuft die Schleife alle ASCII-Werte (0 - 255).

<?php

// Ausgabe der ASCII-Werte 0 - 255
for ($i = 0; $i <= 255; $i++)
{
  echo chr($i);
}

?>

Sollte man irrtümlich oder vorsätzlich eine höhere Zahl als 255 angeben, dann wird mit 256 praktisch wieder bei 0 begonnen.

<?php

// Ausgabe der ASCII-Werte 0 - 255 und 0 - 199
for ($i = 0; $i <= 455; $i++)
{
  echo chr($i);
}

?>

Das Gegenstück zu chr() ist die Funktion ord(). Damit ist es möglich, den ASCII-Wert eines Zeichens auszugeben. Beide Funktionen können hin und wieder gebraucht werden, insbesondere wenn man sicherstellen will, dass im Programmcode ein bestimmtes Zeichen aus der ASCII-Tabelle angesprochen wird.