Hebrevc: примеры (PHP)
hebrevc(string $string, int $max_chars_per_line = 0): stringФункция hebrevc преобразует строку на иврите, записанную в логическом порядке (слева направо), в визуальный порядок (справа налево). Она также выполняет преобразование перевода строки \n в HTML-тег <br>.
Использование функции актуально при отображении текста на иврите в веб-приложениях, когда исходные данные хранятся в логической кодировке. Это часто необходимо для корректного отображения в HTML.
- string (обязательный) – строка на иврите в логической кодировке для преобразования.
- max_chars_per_line (опциональный, по умолчанию 0) – максимальное количество символов в строке перед вставкой разрыва
<br>. Если установлено в 0, разрывы строк не вставляются, кроме существующих переводов строк.
<?
$hebrew_text = "שלום עולם\nזה הוא טקסט בעברית.";
echo hebrevc($hebrew_text);
?>.טקסט בעברית הוא זה
עולם שלום
<?
$text = "זהו משפט ארוך מאוד בעברית שצריך להיות מחולק לשורות.";
echo hebrevc($text, 10);
?>.לשורות מחולק להיות צריך שבעברית מאוד ארוך משפט זהו
- hebrev() – выполняет аналогичное преобразование, но не заменяет переводы строк на теги
<br>. Используется, когда необходимо сохранить логическую структуру строк без HTML-разметки. - iconv() и mb_convert_encoding() – функции для преобразования кодировок. Применяются, когда проблема заключается не в порядке символов, а в неправильной кодировке текста.
Функцию hebrevc предпочтительнее использовать для быстрого преобразования текста на иврите для веб-отображения. Для более сложных манипуляций с кодировками лучше подходят iconv или расширение Multibyte String.
Функция не предназначена для других языков и может давать неожиданные результаты.
<?
echo hebrevc("Hello world");
?>Hello world
Если строка не в правильной кодировке (например, UTF-8), результат будет некорректным. Функция ожидает однобайтовую кодировку (ISO-8859-8).
В PHP 8.0.0 параметр max_chars_per_line стал необязательным, его значение по умолчанию изменено с 0. В более ранних версиях требовалось явное указание этого параметра.
Начиная с PHP 7.4.0, функция выдает предупреждение, если параметр max_chars_per_line меньше 0. В PHP 8 такое значение приводит к выбрасыванию исключения ValueError.
<?
$multi_line = "שורה ראשונה\nשורה שנייה\nשורה שלישית";
echo hebrevc($multi_line);
?>שלישית שורה
שנייה שורה
ראשונה שורה
<?
$user_input = "\nטקסט בעברית";
$safe_text = hebrevc(htmlspecialchars($user_input));
echo $safe_text;
?>טקסט בעברית
<script>alert('test')</script>
<?
$long_text = "אקסטרה לאונג טקסט אינשרנט לשם הדגמת הפונקציה עם פרמטר אורך שורה";
echo hebrevc($long_text, 5);
?>.שורה אורך פרמטר עם הפונקציה הדגמת לשם אינשרנט טקסט לאונג אקסטרה
Hebrevc в Javascript
В JavaScript нет прямой аналогии, но можно использовать CSS-свойство direction: rtl; или методы для работы с юникодом.
// CSS-решение
document.getElementById('hebrew').style.direction = 'rtl';Hebrevc в Python
В Python для реверсирования строки можно использовать срезы, но это не полноценная альтернатива.
text = "שלום עולם"
reversed_text = text[::-1]
print(reversed_text) # מלוע םולשמלוע םולש
Hebrevc в MySQL
В MySQL можно использовать функцию CONVERT для изменения кодировки или REVERSE для инвертирования строки, но это не эквивалентно логико-визуальному преобразованию.