使用php在文本文件中从右到左书写文本

时间:2015-06-08 10:15:35

标签: php unicode arabic right-to-left bidi

我想用php在文本文件中写阿拉伯语文本,但我还没有找到如何从右到左书写文本。我找到了这篇文章understanding-bidirectional-text 他们解释说我应该在我的字符串之前添加unicode字符U + 202E和U + 202C之后。但我不知道如何将这个unicode字符转换为php中的字符串。我试过这样的事情$content = "\u{202E}".$content."\u{202C}",但它没有用。

1 个答案:

答案 0 :(得分:3)

是的,如果您的客户端不支持双向行为,则需要使用force。这通常发生在纯文本环境中。使用以下函数可以轻松地在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代码点。第二个函数返回一个带有从右到左标记的字符串,第三个函数返回一个带有从左到右标记的字符串。在两种情况下,在字符串的末尾都恢复原始方向。

仍然取决于客户端是否可以看到书写方向。