Я хотел бы написать арабский текст внутри текстового файла с помощью php, но я не нашел, как писать текст справа налево. Я нашел эту статью понимание-двунаправленным текст
Где они объясняют, что я должен добавить перед строкой символы Юникода U + 202E и U + 202C после. Но я не знаю, как преобразовать этот символ Unicode в строку в PHP. Я пытался с чем-то вроде этого $content = "\u{202E}".$content."\u{202C}"
но это не сработало.
Да, если ваш клиент не поддерживает двунаправленное поведение, вам необходимо применить силу. Это часто происходит в текстовых средах. Существует простой способ создания таких текстов в 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');
}
Первая функция переводит кодировку Unicode UTF-8. Вторая функция возвращает строку с метками справа налево, а третья возвращает строку с метками слева направо. Исходное направление восстанавливается в обоих случаях в конце строки.
От клиента все еще зависит, будет ли визуализировано направление письма.
Других решений пока нет …