使用 php 在文本文件中从右到左写入文本
Write text from right to left in a text file with php
我想用 php 在文本文件中写阿拉伯语文本,但我没有找到如何从右到左书写文本。我找到了这篇文章 understanding-bidirectional-text
他们解释说我应该在我的字符串之前添加 unicode 字符 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 代码点。第二个函数 returns 一个带有从右到左标记的字符串,第三个函数 returns 一个带有从左到右标记的字符串。在字符串的末尾,这两种情况都恢复了原来的方向。
书写方向是否可视化,还是要看客户。
我想用 php 在文本文件中写阿拉伯语文本,但我没有找到如何从右到左书写文本。我找到了这篇文章 understanding-bidirectional-text
他们解释说我应该在我的字符串之前添加 unicode 字符 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 代码点。第二个函数 returns 一个带有从右到左标记的字符串,第三个函数 returns 一个带有从左到右标记的字符串。在字符串的末尾,这两种情况都恢复了原来的方向。
书写方向是否可视化,还是要看客户。