hebrev()
Die Funktion hebrev() konvertiert hebräischen Text in visuellen Text zur Anzeige auf einer Webseite. Die Syntax der Funktion hebrev() lautet:
Die PHP-Funktion hebrev() wandelt logischen hebräischen Text (gespeichert in der Reihenfolge, in der er eingegeben wird, von rechts nach links) in visuellen Text um (von links nach rechts angeordnet, sodass ein Nicht-RTL-Display ihn korrekt darstellt). Dazu wird die Reihenfolge der hebräischen Zeichen im String umgekehrt, während Satzzeichen und Leerzeichen lesbar bleiben.
Diese Seite erläutert, was hebrev() tat, seine Syntax und Parameter, ausführbare Beispiele, warum es entfernt wurde und was heute stattdessen verwendet werden sollte.
hebrev() wurde in PHP 7.2 als veraltet markiert und in PHP 8.0 vollständig entfernt. Ein Aufruf auf PHP 8+ wirft einen Error: Call to undefined function hebrev(). Diese Seite dient nur dem Verständnis und der Pflege von Legacy-Code. Für neuen Code sollte die Textrichtung im Browser mit HTML dir="rtl" oder CSS direction: rtl gesetzt werden — siehe Warum es entfernt wurde und was stattdessen verwendet werden sollte.
Syntax
hebrev(string $string, int $max_chars_per_line = 0): string| Parameter | Erforderlich | Beschreibung |
|---|---|---|
$string | Ja | Der hebräische (logische) Text, der konvertiert werden soll. |
$max_chars_per_line | Nein | Maximale Anzahl von Zeichen pro Zeile für den Zeilenumbruch. Bei 0 (Standardwert) wird kein zusätzlicher Umbruch angewendet. |
Die Funktion gibt den konvertierten String in visueller Reihenfolge zurück. Nicht-hebräische Zeichen (ASCII-Buchstaben, Ziffern, Satzzeichen) werden unverändert belassen.
Einfaches Beispiel
Hier ist die einfachste Verwendung von hebrev() — Konvertierung eines logischen hebräischen Strings in visuelle Reihenfolge:
Die hebräische Zeichenfolge wird umgekehrt, sodass sie in einer von-links-nach-rechts-Umgebung korrekt lesbar ist. Die Ausgabe lautet:
תירבע רבדמ ינא ,ןכZeilenumbruch mit $max_chars_per_line
Der zweite Parameter fügt Zeilenumbrüche ein, sodass keine Zeile die angegebene Breite überschreitet. Er greift nur, wenn eine hebräische Zeichenfolge länger als das Limit ist — kurze Strings wie der folgende passen auf eine einzelne Zeile, sodass die Ausgabe identisch mit dem einfachen Beispiel ist. Mit 40 liegt der Text weit unter dem Limit und wird nicht umgebrochen:
Die Ausgabe:
תירבע רבדמ ינא ,ןכUm den Zeilenumbruch tatsächlich auszulösen, wäre eine hebräische Zeichenfolge erforderlich, die länger als $max_chars_per_line ist; nur dann werden Zeilenumbrüche eingefügt.
Warum es entfernt wurde und was stattdessen verwendet werden sollte
hebrev() stammt aus einer Zeit vor der Unicode-bidirektionalen Darstellung in Browsern. Der „visuelle Reihenfolge"-Trick war nötig, als Terminals und ältere Browser den Text von rechts nach links nicht selbst umordnen konnten. Heute übernimmt die Darstellungsschicht dies, sodass das Umkehren von Zeichen in PHP sowohl unnötig als auch verlustbehaftet ist (es bäckt das Layout in die Daten ein).
Für neuen Code sollte der Text in seiner natürlichen logischen Reihenfolge belassen und die Richtung im Markup festgelegt werden:
<p dir="rtl">כן, אני מדבר עברית</p>Oder mit CSS:
.hebrew { direction: rtl; }Der Browser ordnet und bricht den Text dann korrekt um, und der zugrunde liegende String bleibt sauber für Suche, Kopieren/Einfügen und Speicherung.
Die begleitende Funktion hebrevc() führte dieselbe Konvertierung durch und wandelte dabei Zeilenumbrüche in <br>-Tags um; sie wurde ebenfalls in PHP 8.0 entfernt — modernes CSS bricht Zeilen automatisch um.
Verwandte Funktionen
hebrevc()— gleiche Konvertierung, mit Zeilenumbrüchen, die in<br>umgewandelt werden (ebenfalls in PHP 8.0 entfernt).strrev()— kehrt jedes Zeichen in einem String um (nicht hebräisch-bewusst).wordwrap()— die standardmäßige, weiterhin unterstützte Methode zum Umbrechen von Text auf eine bestimmte Zeilenbreite.nl2br()— fügt HTML-Zeilenumbrüche vor Zeilenumbrüchen in einem String ein.