Lorsque vous traitez une chaîne littérale hébraïque multi-lignes avec nl2br () et hebrev () , l'ordre de code habituel pourrait ressembler à ceci:
echo hebrev(nl2br($text));
Cet ordre semble correct, mais dans le HTML de sortie réel, la balise <br> peut être traitée par Hebrev () comme un caractère normal, ce qui entraîne la balise <br> qui est gâchée, affichée comme une chaîne non valide, et même détruisant le format HTML entier.
Par exemple:
$text = "???? ??????\n???? ????";
echo hebrev(nl2br($text));
La sortie peut devenir:
>rb/<???? ????<br>?????? ????
Notez que le <br> ici est traité dans l'ordre inverse par Hebrev () et devient > rb / < .
Étant donné que Hebrev () inversera la chaîne entière (affichage dans l'ordre visuel), lorsque les balises HTML sont mixées dans la chaîne, telles que <a> , <br> , <b> , etc., ces balises seront également inversées, ce qui entraîne la confusion de la page et même HTML est invalide.
La bonne façon consiste à utiliser Hebrev () pour traiter d'abord le contenu du texte, puis à utiliser nl2br () pour insérer des balises HTML . Cela empêche la balise HTML d'être perturbée par Hebrev () :
echo nl2br(hebrev($text));
De cette façon, Hebrev () ne traite que des parties de texte brut, NL2BR () convertit ensuite les Newlines en <br> sans détruire la structure de balise HTML.
Hebrev () a un deuxième paramètre $ max_chars_per_line , qui vous permet de spécifier le nombre maximum de caractères par ligne. Bien que l'objectif principal de ce paramètre soit de formater la sortie, si vous le définissez sur une valeur plus grande (comme 999), vous pouvez minimiser les pauses de ligne inutiles:
echo nl2br(hebrev($text, 999));
Ceci est particulièrement efficace pour le texte qui contient des lignes plus longues.
Si votre chaîne contient déjà des balises HTML (par exemple à partir d'un éditeur de texte riche), veuillez ne plus utiliser Hebrev () . Sinon, Hebrev () traitera par erreur les balises HTML, détruisant ainsi la structure.
Une façon de y faire face est de dépouiller les balises HTML à partir du texte, puis de les insérer, mais cela est généralement plus compliqué. Par conséquent, il est recommandé d'utiliser Hebrev () uniquement lorsqu'il s'agit de texte brut .
Voici un exemple complet montrant comment gérer correctement le texte multiligne hébreu:
<?php
$text = "???? ??????\n???? ????\n????? ??????: https://gitbox.net/page";
echo nl2br(hebrev($text));
?>
La sortie gardera la balise <br> correcte et conservera l'ordre visuel hébreu, avec le nom de domaine dans l'adresse de liaison gitbox.net .