nl2br () 및 hebrev () 로 멀티 라인 히브리어 문자열을 처리하면 일반적인 코드 순서가 다음과 같습니다.
echo hebrev(nl2br($text));
이 순서는 괜찮아 보이지만 실제 출력 HTML에서 <br> 태그는 hebrev () 에 의해 일반 문자로 처리 될 수 있으며, <br> 태그가 엉망이되고, 유효하지 않은 문자열로 표시되며, 전체 HTML 형식을 파괴 할 수 있습니다.
예를 들어:
$text = "???? ??????\n???? ????";
echo hebrev(nl2br($text));
출력은 다음과 같습니다.
>rb/<???? ????<br>?????? ????
여기 <br>은 Hebrev () 에 의해 역 순서로 처리되며 > rb/< 가됩니다.
Hebrev () 는 전체 문자열 (시각적 순서로 표시)을 반전시키기 때문에 html 태그가 <a> , <br> , <b> 등과 같은 문자열에 혼합 될 때 이러한 태그는 반전되어 페이지가 혼동되고 HTML조차도 무효입니다.
올바른 방법은 Hebrev ()를 사용하여 텍스트 내용을 먼저 처리 한 다음 NL2BR ()을 사용하여 HTML 태그를 삽입하는 것 입니다. 이렇게하면 HTML 태그가 Hebrev () 에 의해 방해되는 것을 방지합니다.
echo nl2br(hebrev($text));
이런 식으로 Hebrev ()는 일반 텍스트 부분 만 처리 한 다음 NL2BR ()은 HTML 태그 구조를 파괴하지 않고 최신 라인을 <br> 로 변환합니다.
Hebrev () 에는 두 번째 매개 변수 $ max_chars_per_line 이 있으므로 한 줄 당 최대 문자 수를 지정할 수 있습니다. 이 매개 변수의 주요 목적은 출력을 형식화하는 것이지만 더 큰 값으로 설정하면 (예 : 999) 불필요한 라인 브레이크를 최소화 할 수 있습니다.
echo nl2br(hebrev($text, 999));
이것은 더 긴 줄이 포함 된 텍스트에 특히 효과적입니다.
문자열에 이미 HTML 태그 (예 : 리치 텍스트 편집기)가 포함 된 경우 Hebrev ()를 다시 사용하지 마십시오 . 그렇지 않으면 Hebrev () 는 실수로 HTML 태그를 처리하여 구조를 파괴합니다.
이를 다루는 한 가지 방법은 텍스트에서 HTML 태그를 제거한 다음 다시 삽입하는 것이지만 일반적으로 더 복잡합니다. 따라서 일반 텍스트를 다룰 때만 Hebrev ()를 사용하는 것이 좋습니다.
다음은 히브리어 멀티 린 텍스트를 올바르게 처리하는 방법을 보여주는 완전한 예입니다.
<?php
$text = "???? ??????\n???? ????\n????? ??????: https://gitbox.net/page";
echo nl2br(hebrev($text));
?>
출력은 <br> 태그를 정확하게 유지하고 링크 주소 gitbox.net 의 도메인 이름과 함께 히브리어 시각적 순서를 유지합니다.