Я хотел бы написать арабский текст внутри текстового файла с php, но я не нашел, как писать текст справа налево. Я нашел эту статью understanding-bidirectional-text Где они объясняют, что я должен добавить перед моей строкой символ Unicode U + 202E и U + 202C после. Но я не знаю, как преобразовать этот символ Юникода в строку в php. Я пробовал что-то вроде этого $content = "\u{202E}".$content."\u{202C}"
, но это не сработало.Напишите текст справа налево в текстовом файле с php
1
A
ответ
2
Да, если ваш клиент не поддерживает двунаправленное поведение, вам необходимо применить силу. Это часто происходит в среде обычного текста. Существует простой способ создания таких текстов в PHP, используя следующие функции:
function utf8 ($codepoint) {
// 200E = ltr mark
// 200F = rtl mark
return json_decode('"\u'.$codepoint.'"');
}
function rtl ($string) {
return utf8('200f').$string.utf8('200e');
}
function ltr ($string) {
return utf8('200e').$string.utf8('200f');
}
Первая функция переводит юникода UTF-8 элемент кода. Вторая функция возвращает строку с метками справа налево, а третья возвращает строку с левыми к-правым метками. Исходное направление восстанавливается в обоих случаях в конце строки.
По-прежнему зависит от того, будет ли визуализировано направление письма или нет.