2015-06-08 137 views
1

我想用php编写文本文件内的阿拉伯文本,但是我没有找到如何从右到左写入文本。我发现这篇文章understanding-bidirectional-text 他们解释说我应该在我的字符串之前添加unicode字符U + 202E和U + 202C。但我不知道如何将这个unicode字符转换为字符串在PHP中。我尝试了这样的东西$content = "\u{202E}".$content."\u{202C}",但它没有奏效。用文本从右到左在文本文件中写入文本使用php

回答

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'); 
} 

第一个功能转换为Unicode UTF-8编码点。第二个函数返回一个带有从右到左标记的字符串,而第三个函数返回一个带有从左到右的标记的字符串。在这两种情况下,原始方向都会在字符串末尾恢复。

它仍然取决于客户端的写作方向是否可视化。