hebrev()
La fonction hebrev() convertit du texte hébreu logique en texte visuel pour l'affichage dans une page web. Voici sa syntaxe et ses paramètres.
La fonction PHP hebrev() convertit du texte hébreu logique (stocké dans l'ordre de saisie, de droite à gauche) en texte visuel (disposé de gauche à droite pour s'afficher correctement dans un environnement non-RTL). Elle procède en inversant l'ordre des caractères hébreux dans la chaîne tout en laissant la ponctuation et les espaces lisibles.
Cette page explique ce que faisait hebrev(), sa syntaxe et ses paramètres, des exemples exécutables, les raisons de sa suppression et les alternatives modernes.
hebrev() a été dépréciée en PHP 7.2 et complètement supprimée en PHP 8.0. L'appeler sous PHP 8+ déclenche une Error: Call to undefined function hebrev(). Cette page est destinée uniquement à la compréhension et à la maintenance de code ancien. Pour tout nouveau code, laissez le navigateur gérer la direction avec l'attribut HTML dir="rtl" ou la propriété CSS direction: rtl — voir Pourquoi elle a été supprimée et quoi utiliser à la place.
Syntaxe
hebrev(string $string, int $max_chars_per_line = 0): string| Paramètre | Requis | Description |
|---|---|---|
$string | Oui | Le texte hébreu (logique) à convertir. |
$max_chars_per_line | Non | Nombre maximum de caractères par ligne pour le retour à la ligne. Lorsque la valeur est 0 (par défaut), aucun retour à la ligne supplémentaire n'est appliqué. |
La fonction retourne la chaîne convertie en ordre visuel. Les caractères non hébreux (lettres ASCII, chiffres, ponctuation) sont laissés en place.
Exemple de base
Voici l'utilisation la plus simple de hebrev() — convertir une chaîne hébraïque logique en ordre visuel :
Le texte hébreu est inversé pour être lu correctement dans un environnement de gauche à droite. Le résultat est :
תירבע רבדמ ינא ,ןכRetour à la ligne avec $max_chars_per_line
Le second paramètre insère des sauts de ligne afin qu'aucune ligne ne dépasse la largeur spécifiée. Il ne prend effet que lorsqu'une séquence hébraïque est plus longue que la limite — les chaînes courtes comme celle ci-dessous tiennent sur une seule ligne, et le résultat est donc identique à l'exemple de base. Avec 40 ici, le texte est bien en dessous de la limite et n'est pas mis à la ligne :
Le résultat :
תירבע רבדמ ינא ,ןכPour que le retour à la ligne se déclenche réellement, il faudrait une séquence hébraïque plus longue que $max_chars_per_line ; c'est seulement dans ce cas que des sauts de ligne sont insérés.
Pourquoi elle a été supprimée et quoi utiliser à la place
hebrev() est antérieure au rendu bidirectionnel Unicode dans les navigateurs. L'astuce de l'« ordre visuel » était nécessaire lorsque les terminaux et les anciens navigateurs ne pouvaient pas réordonner eux-mêmes le texte de droite à gauche. Aujourd'hui, la couche de rendu s'en charge, et l'inversion des caractères en PHP est à la fois inutile et préjudiciable (elle ancre la mise en page dans les données).
Pour tout nouveau code, conservez le texte dans son ordre logique naturel et définissez la direction dans le balisage :
<p dir="rtl">כן, אני מדבר עברית</p>Ou avec CSS :
.hebrew { direction: rtl; }Le navigateur réordonne et met alors le texte à la ligne correctement, et la chaîne sous-jacente reste propre pour la recherche, le copier-coller et le stockage.
La fonction associée hebrevc() effectuait la même conversion tout en transformant également les sauts de ligne en balises <br> ; elle a été supprimée en PHP 8.0 également — le CSS moderne gère automatiquement le retour à la ligne.
Fonctions associées
hebrevc()— même conversion, avec les sauts de ligne convertis en<br>(également supprimée en PHP 8.0).strrev()— inverse chaque caractère d'une chaîne (sans connaissance de l'hébreu).wordwrap()— la méthode standard, toujours prise en charge, pour mettre du texte à la ligne à une largeur donnée.nl2br()— insère des sauts de ligne HTML avant les retours à la ligne dans une chaîne.