Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog‑Verzeichnis

Partner
 Sprüche Treff

Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

ASCII-Werte in PHP: Zeichen und Codes mit ord() und chr()

Sie befinden sich: Home > Php Tutorial > ASCII-Werte in PHP:...

ASCII-Werte in PHP: Zeichen und Codes mit ord() und chr()


Eintrag am:  13.11.2009
Hits / Besucher:  13707
Sprache:  Deutsch
Kategorie:  Einsteiger Tutorials
Tutorial Art:  eigenes
Eingetragen von   schubertmedia schubertmedia
 
Beschreibung

Die Funktionen chr() und ord() sind Gegenstücke: ord() ermittelt den ASCII-Wert eines Zeichens, chr() gibt das Zeichen zu einem ASCII-Wert zurück. Beide Funktionen sind nützlich für die Arbeit mit Zeichenkodierungen, Verschlüsselung und Zeichenmanipulation.

1. ord() – ASCII-Wert eines Zeichens ermitteln

Die Funktion ord() gibt den ASCII-Wert (0–255) des ersten Zeichens eines Strings zurück:

<?php

echo ord("A"); /* 65 */
echo ord("a"); /* 97 */
echo ord("0"); /* 48 */
echo ord(" "); /* 32 (Leerzeichen) */
echo ord("n"); /* 10 (Zeilenumbruch) */
?>

Syntax: int ord(string $character)

Hinweis: Bei einem längeren String wird nur das erste Zeichen ausgewertet. ord("Hallo") gibt 72 zurück (den Wert von "H").

2. chr() – Zeichen aus einem ASCII-Wert erzeugen

Die Funktion chr() ist das Gegenteil von ord(): Sie gibt das Zeichen zurück, das einem bestimmten Codepoint entspricht:

<?php

echo chr(65); /* A */
echo chr(97); /* a */
echo chr(48); /* 0 */
echo chr(10); /* Zeilenumbruch (n) */
echo chr(9); /* Tabulator (t) */
echo chr(182); /* ¶ */
?>

Syntax: string chr(int $codepoint)

Der Codepoint muss zwischen 0 und 255 liegen. Werte außerhalb dieses Bereichs werden mit 255 bitweise UND-verknüpft ($codepoint & 255).

3. Praktische Beispiele

Beispiel 1: Alle druckbaren ASCII-Zeichen ausgeben

<?php

for ($i = 32; $i <= 126; $i++) {
echo $i . " = " . chr($i) . " ";
}
/* 32 = 33 = ! 34 = " ... 65 = A 66 = B ... */
?>

Beispiel 2: Einfache Caesar-Verschiebung

<?php

function caesarVerschiebung(string $text, int $shift): string
{
$result = "";
for ($i = 0; $i < strlen($text); $i++) {
$ascii = ord($text[$i]);
/* Nur Großbuchstaben (65-90) verschieben */
if ($ascii >= 65 && $ascii <= 90) {
$result .= chr(($ascii - 65 + $shift) % 26 + 65);
/* Nur Kleinbuchstaben (97-122) verschieben */
} elseif ($ascii >= 97 && $ascii <= 122) {
$result .= chr(($ascii - 97 + $shift) % 26 + 97);
} else {
$result .= $text[$i];
}
}
return $result;
}

echo caesarVerschiebung("Hallo Welt", 3);
/* Ausgabe: Kdoor Zhow */

echo caesarVerschiebung("Kdoor Zhow", -3);
/* Ausgabe: Hallo Welt */
?>

Beispiel 3: Steuerzeichen erkennen

<?php

$text = "HallotWeltn";

for ($i = 0; $i < strlen($text); $i++) {
$code = ord($text[$i]);
if ($code < 32) {
echo "[Steuerzeichen: $code] ";
} else {
echo $text[$i];
}
}
/* Ausgabe: Hallo[Steuerzeichen: 9] Welt[Steuerzeichen: 10] */
?>

4. Wichtige ASCII-Werte

BereichCodesZeichen
Ziffern48–570–9
Großbuchstaben65–90A–Z
Kleinbuchstaben97–122a–z
Leerzeichen32(Space)
Tabulator9t
Zeilenumbruch10n
Wagenrücklauf13r

5. Multibyte-Zeichen: mb_ord() und mb_chr()

Die Standardfunktionen ord() und chr() arbeiten byteweise und sind auf den Bereich 0–255 beschränkt. Für Unicode-Zeichen (z.B. Umlaute, Emojis) stehen seit PHP 7.2 die Multibyte-Varianten zur Verfügung:

<?php

/* Unicode-Codepoint eines Zeichens ermitteln */
echo mb_ord("ä", "UTF-8"); /* 228 */
echo mb_ord("€", "UTF-8"); /* 8364 */

/* Zeichen aus Unicode-Codepoint erzeugen */
echo mb_chr(228, "UTF-8"); /* ä */
echo mb_chr(8364, "UTF-8"); /* € */
?>

Zusammenfassung

FunktionRichtungBereich
ord()Zeichen → Zahl0–255 (Bytes)
chr()Zahl → Zeichen0–255 (Bytes)
mb_ord()Zeichen → ZahlUnicode (ab PHP 7.2)
mb_chr()Zahl → ZeichenUnicode (ab PHP 7.2)

 

Tags:

 

Bücherregal mit drei Büchern: 'PHP 4 - Grundlagen und Profiwissen' von Hanser Verlag, 'Webdesign in a Nutshell' von O'Reilly Verlag, und 'Webgestaltung' von Galileo Computing.