Position actuelle: Accueil> Derniers articles> Quels sont les problèmes et solutions courants lors de l'utilisation de la fonction Hebrev avec la fonction NL2BR?

Quels sont les problèmes et solutions courants lors de l'utilisation de la fonction Hebrev avec la fonction NL2BR?

gitbox 2025-06-11

Questions fréquemment posées

1. La sortie NL2BR () est corrompue par Hebrev ()

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 / < .

2. L'ordre du texte est inversé et déroutant

É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.


Solution

1. Ajustez l'ordre des appels de fonction

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.

2. Utilisez le deuxième paramètre de Hebrev ()

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.

3. Évitez d'utiliser Hebrev () sur les chaînes contenant des balises HTML

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 .


Exemples réels

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 .